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

/*
	Package test is a generated protocol buffer package.

	It is generated from these files:
		combos/unmarshaler/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
*/
package test

import proto "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/proto"
import fmt "fmt"
import math "math"

// discarding unused import gogoproto "github.com/gogo/protobuf/gogoproto"

import github_com_gogo_protobuf_test_custom "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/test/custom"
import github_com_gogo_protobuf_test_custom_dash_type "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/test/custom-dash-type"

import google_protobuf "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/protoc-gen-gogo/descriptor"

import strconv "strconv"

import bytes "bytes"

import github_com_gogo_protobuf_proto "QmfH4HuZyN1p2wQLWWkXC91Z76435xKrBVfLQ2MY8ayG5R/gogo-protobuf/proto"

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

import io "io"

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

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
}

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
}

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
}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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

func (m *Nil) Reset()      { *m = Nil{} }
func (*Nil) ProtoMessage() {}

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() {}

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

func (m *NinOptEnum) Reset()      { *m = NinOptEnum{} }
func (*NinOptEnum) ProtoMessage() {}

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

func (m *NidRepEnum) Reset()      { *m = NidRepEnum{} }
func (*NidRepEnum) ProtoMessage() {}

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

func (m *NinRepEnum) Reset()      { *m = NinRepEnum{} }
func (*NinRepEnum) ProtoMessage() {}

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

func (m *NinOptEnumDefault) Reset()      { *m = NinOptEnumDefault{} }
func (*NinOptEnumDefault) ProtoMessage() {}

const Default_NinOptEnumDefault_Field1 TheTestEnum = C

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

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

func (m *AnotherNinOptEnum) Reset()      { *m = AnotherNinOptEnum{} }
func (*AnotherNinOptEnum) ProtoMessage() {}

type AnotherNinOptEnumDefault struct {
	Field1           *AnotherTestEnum `protobuf:"varint,1,opt,name=Field1,enum=test.AnotherTestEnum,def=11" json:"Field1,omitempty"`
	XXX_unrecognized []byte           `json:"-"`
}

func (m *AnotherNinOptEnumDefault) Reset()      { *m = AnotherNinOptEnumDefault{} }
func (*AnotherNinOptEnumDefault) ProtoMessage() {}

const Default_AnotherNinOptEnumDefault_Field1 AnotherTestEnum = E

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

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() {}

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

func (m *MyExtendable) Reset()      { *m = MyExtendable{} }
func (*MyExtendable) ProtoMessage() {}

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

func (*MyExtendable) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_MyExtendable
}
func (m *MyExtendable) ExtensionMap() map[int32]proto.Extension {
	if m.XXX_extensions == nil {
		m.XXX_extensions = make(map[int32]proto.Extension)
	}
	return m.XXX_extensions
}

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

func (m *OtherExtenable) Reset()      { *m = OtherExtenable{} }
func (*OtherExtenable) ProtoMessage() {}

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

func (*OtherExtenable) ExtensionRangeArray() []proto.ExtensionRange {
	return extRange_OtherExtenable
}
func (m *OtherExtenable) ExtensionMap() map[int32]proto.Extension {
	if m.XXX_extensions == nil {
		m.XXX_extensions = make(map[int32]proto.Extension)
	}
	return m.XXX_extensions
}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

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() {}

var extRange_NoExtensionsMap = []proto.ExtensionRange{
	{100, 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() {}

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() {}

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() {}

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() {}

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() {}

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

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

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

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

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

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

func init() {
	proto.RegisterEnum("test.TheTestEnum", TheTestEnum_name, TheTestEnum_value)
	proto.RegisterEnum("test.AnotherTestEnum", AnotherTestEnum_name, AnotherTestEnum_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_FieldA1)
	proto.RegisterExtension(E_FieldB1)
	proto.RegisterExtension(E_FieldC1)
}
func (this *NidOptNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepPackedNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepPackedNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidEmbeddedStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinEmbeddedStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidNestedStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinNestedStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptCustom) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomDash) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptCustom) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepCustom) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepCustom) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNativeUnion) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptStructUnion) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinEmbeddedStructUnion) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinNestedStructUnion) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Tree) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *OrBranch) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AndBranch) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Leaf) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *DeepTree) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *ADeepBranch) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AndDeepBranch) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *DeepLeaf) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Nil) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidOptEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NidRepEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinRepEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptEnumDefault) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AnotherNinOptEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *AnotherNinOptEnumDefault) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Timer) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *MyExtendable) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *OtherExtenable) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition_NestedMessage) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedDefinition_NestedMessage_NestedNestedMsg) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NestedScope) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NinOptNativeDefault) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomContainer) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNidOptNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinOptNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinRepNative) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinStruct) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameCustomType) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameNinEmbeddedStructUnion) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *CustomNameEnum) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *NoExtensionsMap) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *Unrecognized) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithInner) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithInner_Inner) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithEmbed) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func (this *UnrecognizedWithEmbed_Embedded) Description() (desc *google_protobuf.FileDescriptorSet) {
	return ThetestDescription()
}
func ThetestDescription() (desc *google_protobuf.FileDescriptorSet) {
	return &google_protobuf.FileDescriptorSet{File: []*google_protobuf.FileDescriptorProto{{Name: func(v string) *string { return &v }("google/protobuf/descriptor.proto"),
		Package: func(v string) *string { return &v }("google.protobuf"),
		MessageType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("FileDescriptorSet"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("file"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FileDescriptorProto"),
			}},
		}, {Name: func(v string) *string { return &v }("FileDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("package"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("dependency"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("public_dependency"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("weak_dependency"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("message_type"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto"),
			}, {Name: func(v string) *string { return &v }("enum_type"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("service"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.ServiceDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
			}, {Name: func(v string) *string { return &v }("source_code_info"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.SourceCodeInfo"),
			}, {Name: func(v string) *string { return &v }("syntax"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
		}, {Name: func(v string) *string { return &v }("DescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("field"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("nested_type"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto"),
			}, {Name: func(v string) *string { return &v }("enum_type"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("extension_range"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.DescriptorProto.ExtensionRange"),
			}, {Name: func(v string) *string { return &v }("oneof_decl"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.OneofDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("ExtensionRange"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("start"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
				}, {Name: func(v string) *string { return &v }("end"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("FieldDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("number"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("label"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto.Label"),
			}, {Name: func(v string) *string { return &v }("type"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldDescriptorProto.Type"),
			}, {Name: func(v string) *string { return &v }("type_name"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("extendee"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("default_value"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("oneof_index"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("Type"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("TYPE_DOUBLE"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("TYPE_FLOAT"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("TYPE_INT64"),
					Number: func(v int32) *int32 { return &v }(3),
				}, {Name: func(v string) *string { return &v }("TYPE_UINT64"),
					Number: func(v int32) *int32 { return &v }(4),
				}, {Name: func(v string) *string { return &v }("TYPE_INT32"),
					Number: func(v int32) *int32 { return &v }(5),
				}, {Name: func(v string) *string { return &v }("TYPE_FIXED64"),
					Number: func(v int32) *int32 { return &v }(6),
				}, {Name: func(v string) *string { return &v }("TYPE_FIXED32"),
					Number: func(v int32) *int32 { return &v }(7),
				}, {Name: func(v string) *string { return &v }("TYPE_BOOL"),
					Number: func(v int32) *int32 { return &v }(8),
				}, {Name: func(v string) *string { return &v }("TYPE_STRING"),
					Number: func(v int32) *int32 { return &v }(9),
				}, {Name: func(v string) *string { return &v }("TYPE_GROUP"),
					Number: func(v int32) *int32 { return &v }(10),
				}, {Name: func(v string) *string { return &v }("TYPE_MESSAGE"),
					Number: func(v int32) *int32 { return &v }(11),
				}, {Name: func(v string) *string { return &v }("TYPE_BYTES"),
					Number: func(v int32) *int32 { return &v }(12),
				}, {Name: func(v string) *string { return &v }("TYPE_UINT32"),
					Number: func(v int32) *int32 { return &v }(13),
				}, {Name: func(v string) *string { return &v }("TYPE_ENUM"),
					Number: func(v int32) *int32 { return &v }(14),
				}, {Name: func(v string) *string { return &v }("TYPE_SFIXED32"),
					Number: func(v int32) *int32 { return &v }(15),
				}, {Name: func(v string) *string { return &v }("TYPE_SFIXED64"),
					Number: func(v int32) *int32 { return &v }(16),
				}, {Name: func(v string) *string { return &v }("TYPE_SINT32"),
					Number: func(v int32) *int32 { return &v }(17),
				}, {Name: func(v string) *string { return &v }("TYPE_SINT64"),
					Number: func(v int32) *int32 { return &v }(18),
				}},
			}, {Name: func(v string) *string { return &v }("Label"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("LABEL_OPTIONAL"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("LABEL_REQUIRED"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("LABEL_REPEATED"),
					Number: func(v int32) *int32 { return &v }(3),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("OneofDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
		}, {Name: func(v string) *string { return &v }("EnumDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumValueDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("EnumValueDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("number"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.EnumValueOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("ServiceDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("method"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MethodDescriptorProto"),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.ServiceOptions"),
			}},
		}, {Name: func(v string) *string { return &v }("MethodDescriptorProto"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("input_type"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("output_type"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("options"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.MethodOptions"),
			}, {Name: func(v string) *string { return &v }("client_streaming"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("server_streaming"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}},
		}, {Name: func(v string) *string { return &v }("FileOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("java_package"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("java_outer_classname"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("java_multiple_files"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_generate_equals_and_hash"),
				Number: func(v int32) *int32 { return &v }(20),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_string_check_utf8"),
				Number: func(v int32) *int32 { return &v }(27),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("optimize_for"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".google.protobuf.FileOptions.OptimizeMode"),
				DefaultValue: func(v string) *string { return &v }("SPEED"),
			}, {Name: func(v string) *string { return &v }("go_package"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("cc_generic_services"),
				Number: func(v int32) *int32 { return &v }(16),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("java_generic_services"),
				Number: func(v int32) *int32 { return &v }(17),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("py_generic_services"),
				Number: func(v int32) *int32 { return &v }(18),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(23),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("cc_enable_arenas"),
				Number: func(v int32) *int32 { return &v }(31),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("OptimizeMode"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("SPEED"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("CODE_SIZE"),
					Number: func(v int32) *int32 { return &v }(2),
				}, {Name: func(v string) *string { return &v }("LITE_RUNTIME"),
					Number: func(v int32) *int32 { return &v }(3),
				}},
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("MessageOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("message_set_wire_format"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("no_standard_descriptor_accessor"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("map_entry"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("FieldOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("ctype"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".google.protobuf.FieldOptions.CType"),
				DefaultValue: func(v string) *string { return &v }("STRING"),
			}, {Name: func(v string) *string { return &v }("packed"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("lazy"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("weak"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("CType"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("STRING"),
					Number: func(v int32) *int32 { return &v }(0),
				}, {Name: func(v string) *string { return &v }("CORD"),
					Number: func(v int32) *int32 { return &v }(1),
				}, {Name: func(v string) *string { return &v }("STRING_PIECE"),
					Number: func(v int32) *int32 { return &v }(2),
				}},
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("EnumOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("allow_alias"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("EnumValueOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("ServiceOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(33),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("MethodOptions"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("deprecated"),
				Number: func(v int32) *int32 { return &v }(33),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("false"),
			}, {Name: func(v string) *string { return &v }("uninterpreted_option"),
				Number: func(v int32) *int32 { return &v }(999),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(1000),
				End: func(v int32) *int32 { return &v }(536870912),
			}},
		}, {Name: func(v string) *string { return &v }("UninterpretedOption"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.UninterpretedOption.NamePart"),
			}, {Name: func(v string) *string { return &v }("identifier_value"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("positive_int_value"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("negative_int_value"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("double_value"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("string_value"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}, {Name: func(v string) *string { return &v }("aggregate_value"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("NamePart"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("name_part"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(2),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}, {Name: func(v string) *string { return &v }("is_extension"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(2),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(8),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("SourceCodeInfo"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("location"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".google.protobuf.SourceCodeInfo.Location"),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("Location"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("path"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(3),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
					Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
						XXX_extensions: map[int32]proto.Extension{},
					},
				}, {Name: func(v string) *string { return &v }("span"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(3),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(5),
					Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
						XXX_extensions: map[int32]proto.Extension{},
					},
				}, {Name: func(v string) *string { return &v }("leading_comments"),
					Number: func(v int32) *int32 { return &v }(3),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}, {Name: func(v string) *string { return &v }("trailing_comments"),
					Number: func(v int32) *int32 { return &v }(4),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(9),
				}},
			}},
		}},
		Options: &google_protobuf.FileOptions{JavaPackage: func(v string) *string { return &v }("com.google.protobuf"),
			JavaOuterClassname: func(v string) *string { return &v }("DescriptorProtos"),
			OptimizeFor:        func(v google_protobuf.FileOptions_OptimizeMode) *google_protobuf.FileOptions_OptimizeMode { return &v }(1),
			XXX_extensions:     map[int32]proto.Extension{},
		},
	}, {Name: func(v string) *string { return &v }("github.com/gogo/protobuf/gogoproto/gogo.proto"),
		Package:    func(v string) *string { return &v }("gogoproto"),
		Dependency: []string{"google/protobuf/descriptor.proto"},
		Extension: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("goproto_enum_prefix"),
			Number: func(v int32) *int32 { return &v }(62001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_stringer"),
			Number: func(v int32) *int32 { return &v }(62021),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("enum_stringer"),
			Number: func(v int32) *int32 { return &v }(62022),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.EnumOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_getters_all"),
			Number: func(v int32) *int32 { return &v }(63001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_prefix_all"),
			Number: func(v int32) *int32 { return &v }(63002),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("verbose_equal_all"),
			Number: func(v int32) *int32 { return &v }(63004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("face_all"),
			Number: func(v int32) *int32 { return &v }(63005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("gostring_all"),
			Number: func(v int32) *int32 { return &v }(63006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("populate_all"),
			Number: func(v int32) *int32 { return &v }(63007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("stringer_all"),
			Number: func(v int32) *int32 { return &v }(63008),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("onlyone_all"),
			Number: func(v int32) *int32 { return &v }(63009),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("equal_all"),
			Number: func(v int32) *int32 { return &v }(63013),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("description_all"),
			Number: func(v int32) *int32 { return &v }(63014),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("testgen_all"),
			Number: func(v int32) *int32 { return &v }(63015),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("benchgen_all"),
			Number: func(v int32) *int32 { return &v }(63016),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("marshaler_all"),
			Number: func(v int32) *int32 { return &v }(63017),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unmarshaler_all"),
			Number: func(v int32) *int32 { return &v }(63018),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("sizer_all"),
			Number: func(v int32) *int32 { return &v }(63020),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_enum_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63021),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("enum_stringer_all"),
			Number: func(v int32) *int32 { return &v }(63022),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_marshaler_all"),
			Number: func(v int32) *int32 { return &v }(63023),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_unmarshaler_all"),
			Number: func(v int32) *int32 { return &v }(63024),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_extensions_map_all"),
			Number: func(v int32) *int32 { return &v }(63025),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_unrecognized_all"),
			Number: func(v int32) *int32 { return &v }(63026),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("gogoproto_import"),
			Number: func(v int32) *int32 { return &v }(63027),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FileOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_getters"),
			Number: func(v int32) *int32 { return &v }(64001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_stringer"),
			Number: func(v int32) *int32 { return &v }(64003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("verbose_equal"),
			Number: func(v int32) *int32 { return &v }(64004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("face"),
			Number: func(v int32) *int32 { return &v }(64005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("gostring"),
			Number: func(v int32) *int32 { return &v }(64006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("populate"),
			Number: func(v int32) *int32 { return &v }(64007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("stringer"),
			Number: func(v int32) *int32 { return &v }(67008),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("onlyone"),
			Number: func(v int32) *int32 { return &v }(64009),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("equal"),
			Number: func(v int32) *int32 { return &v }(64013),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("description"),
			Number: func(v int32) *int32 { return &v }(64014),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("testgen"),
			Number: func(v int32) *int32 { return &v }(64015),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("benchgen"),
			Number: func(v int32) *int32 { return &v }(64016),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("marshaler"),
			Number: func(v int32) *int32 { return &v }(64017),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unmarshaler"),
			Number: func(v int32) *int32 { return &v }(64018),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("sizer"),
			Number: func(v int32) *int32 { return &v }(64020),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_marshaler"),
			Number: func(v int32) *int32 { return &v }(64023),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("unsafe_unmarshaler"),
			Number: func(v int32) *int32 { return &v }(64024),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_extensions_map"),
			Number: func(v int32) *int32 { return &v }(64025),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("goproto_unrecognized"),
			Number: func(v int32) *int32 { return &v }(64026),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.MessageOptions"),
		}, {Name: func(v string) *string { return &v }("nullable"),
			Number: func(v int32) *int32 { return &v }(65001),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("embed"),
			Number: func(v int32) *int32 { return &v }(65002),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(8),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("customtype"),
			Number: func(v int32) *int32 { return &v }(65003),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("customname"),
			Number: func(v int32) *int32 { return &v }(65004),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("jsontag"),
			Number: func(v int32) *int32 { return &v }(65005),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("moretags"),
			Number: func(v int32) *int32 { return &v }(65006),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}, {Name: func(v string) *string { return &v }("casttype"),
			Number: func(v int32) *int32 { return &v }(65007),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(9),
			Extendee: func(v string) *string { return &v }(".google.protobuf.FieldOptions"),
		}},
		Options: &google_protobuf.FileOptions{JavaPackage: func(v string) *string { return &v }("com.google.protobuf"),
			JavaOuterClassname: func(v string) *string { return &v }("GoGoProtos"),
			XXX_extensions:     map[int32]proto.Extension{},
		},
	}, {Name: func(v string) *string { return &v }("combos/unmarshaler/thetest.proto"),
		Package:    func(v string) *string { return &v }("test"),
		Dependency: []string{"github.com/gogo/protobuf/gogoproto/gogo.proto"},
		MessageType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("NidOptNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinOptNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
		}, {Name: func(v string) *string { return &v }("NidRepNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinRepNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
		}, {Name: func(v string) *string { return &v }("NidRepPackedNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})},
				},
			}},
		}, {Name: func(v string) *string { return &v }("NinRepPackedNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{Packed: func(v bool) *bool { return &v }(true),
					XXX_extensions: map[int32]proto.Extension{},
				},
			}},
		}, {Name: func(v string) *string { return &v }("NidOptStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinOptStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
		}, {Name: func(v string) *string { return &v }("NidRepStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinRepStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
		}, {Name: func(v string) *string { return &v }("NidEmbeddedStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65002: proto.NewExtension([]byte{0xd0, 0xde, 0x1f, 0x1})}},
			}, {Name: func(v string) *string { return &v }("Field200"),
				Number: func(v int32) *int32 { return &v }(200),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field210"),
				Number: func(v int32) *int32 { return &v }(210),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinEmbeddedStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65002: proto.NewExtension([]byte{0xd0, 0xde, 0x1f, 0x1})}},
			}, {Name: func(v string) *string { return &v }("Field200"),
				Number: func(v int32) *int32 { return &v }(200),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field210"),
				Number: func(v int32) *int32 { return &v }(210),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}},
		}, {Name: func(v string) *string { return &v }("NidNestedStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptStruct"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidRepStruct"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinNestedStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptStruct"),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinRepStruct"),
			}},
		}, {Name: func(v string) *string { return &v }("NidOptCustom"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Id"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64})}},
			}, {Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomDash"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2d, 0x64, 0x61, 0x73, 0x68, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinOptCustom"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Id"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64})}},
			}, {Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38})}},
			}},
		}, {Name: func(v string) *string { return &v }("NidRepCustom"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Id"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64})}},
			}, {Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinRepCustom"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Id"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64})}},
			}, {Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinOptNativeUnion"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("NinOptStructUnion"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("NinEmbeddedStructUnion"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65002: proto.NewExtension([]byte{0xd0, 0xde, 0x1f, 0x1})}},
			}, {Name: func(v string) *string { return &v }("Field200"),
				Number: func(v int32) *int32 { return &v }(200),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			}, {Name: func(v string) *string { return &v }("Field210"),
				Number: func(v int32) *int32 { return &v }(210),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("NinNestedStructUnion"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNativeUnion"),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptStructUnion"),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinEmbeddedStructUnion"),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("Tree"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Or"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.OrBranch"),
			}, {Name: func(v string) *string { return &v }("And"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.AndBranch"),
			}, {Name: func(v string) *string { return &v }("Leaf"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Leaf"),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("OrBranch"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Left"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Tree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Right"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Tree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("AndBranch"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Left"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Tree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Right"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Tree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("Leaf"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("StrValue"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("DeepTree"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Down"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.ADeepBranch"),
			}, {Name: func(v string) *string { return &v }("And"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.AndDeepBranch"),
			}, {Name: func(v string) *string { return &v }("Leaf"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.DeepLeaf"),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("ADeepBranch"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Down"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.DeepTree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("AndDeepBranch"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Left"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.DeepTree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Right"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.DeepTree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("DeepLeaf"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Tree"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.Tree"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("Nil")}, {Name: func(v string) *string { return &v }("NidOptEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinOptEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
			}},
		}, {Name: func(v string) *string { return &v }("NidRepEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("NinRepEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
			}},
		}, {Name: func(v string) *string { return &v }("NinOptEnumDefault"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".test.TheTestEnum"),
				DefaultValue: func(v string) *string { return &v }("C"),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64001: proto.NewExtension([]byte{0x88, 0xa0, 0x1f, 0x1}), 64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("AnotherNinOptEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.AnotherTestEnum"),
			}},
		}, {Name: func(v string) *string { return &v }("AnotherNinOptEnumDefault"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName:     func(v string) *string { return &v }(".test.AnotherTestEnum"),
				DefaultValue: func(v string) *string { return &v }("E"),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64001: proto.NewExtension([]byte{0x88, 0xa0, 0x1f, 0x1}), 64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("Timer"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Time1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Time2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}, {Name: func(v string) *string { return &v }("Data"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("MyExtendable"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(100),
				End: func(v int32) *int32 { return &v }(200),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("OtherExtenable"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("M"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.MyExtendable"),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(14),
				End: func(v int32) *int32 { return &v }(17),
			}, {Start: func(v int32) *int32 { return &v }(10),
				End: func(v int32) *int32 { return &v }(13),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("NestedDefinition"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}, {Name: func(v string) *string { return &v }("EnumField"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedEnum"),
			}, {Name: func(v string) *string { return &v }("NNM"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedMessage.NestedNestedMsg"),
			}, {Name: func(v string) *string { return &v }("NM"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedMessage"),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("NestedMessage"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("NestedField1"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(6),
				}, {Name: func(v string) *string { return &v }("NNM"),
					Number: func(v int32) *int32 { return &v }(2),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(11),
					TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedMessage.NestedNestedMsg"),
				}},
				NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("NestedNestedMsg"),
					Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("NestedNestedField1"),
						Number: func(v int32) *int32 { return &v }(10),
						Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
							return &v
						}(1),
						Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
							return &v
						}(9),
					}},
				}},
			}},
			EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("NestedEnum"),
				Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("TYPE_NESTED"),
					Number: func(v int32) *int32 { return &v }(1),
				}},
			}},
		}, {Name: func(v string) *string { return &v }("NestedScope"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("A"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedMessage.NestedNestedMsg"),
			}, {Name: func(v string) *string { return &v }("B"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedEnum"),
			}, {Name: func(v string) *string { return &v }("C"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NestedDefinition.NestedMessage"),
			}},
		}, {Name: func(v string) *string { return &v }("NinOptNativeDefault"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				DefaultValue: func(v string) *string { return &v }("1234.1234"),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				DefaultValue: func(v string) *string { return &v }("1234.1234"),
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				DefaultValue: func(v string) *string { return &v }("true"),
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				DefaultValue: func(v string) *string { return &v }("1234"),
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64001: proto.NewExtension([]byte{0x88, 0xa0, 0x1f, 0x1}), 64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("CustomContainer"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("CustomStruct"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptCustom"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameNidOptNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44})}},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48})}},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49})}},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4a})}},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b})}},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameNinOptNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44})}},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48})}},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49})}},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4a})}},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b})}},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x5, 0x46, 0x69, 0x65, 0x6c, 0x4c})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameNinRepNative"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(5),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44})}},
			}, {Name: func(v string) *string { return &v }("Field5"),
				Number: func(v int32) *int32 { return &v }(5),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(13),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(18),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48})}},
			}, {Name: func(v string) *string { return &v }("Field9"),
				Number: func(v int32) *int32 { return &v }(9),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(7),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49})}},
			}, {Name: func(v string) *string { return &v }("Field10"),
				Number: func(v int32) *int32 { return &v }(10),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(15),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4a})}},
			}, {Name: func(v string) *string { return &v }("Field11"),
				Number: func(v int32) *int32 { return &v }(11),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(6),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4b})}},
			}, {Name: func(v string) *string { return &v }("Field12"),
				Number: func(v int32) *int32 { return &v }(12),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(16),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4c})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameNinStruct"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(1),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(2),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}, {Name: func(v string) *string { return &v }("Field3"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43})}},
			}, {Name: func(v string) *string { return &v }("Field4"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44})}},
			}, {Name: func(v string) *string { return &v }("Field6"),
				Number: func(v int32) *int32 { return &v }(6),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(4),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45})}},
			}, {Name: func(v string) *string { return &v }("Field7"),
				Number: func(v int32) *int32 { return &v }(7),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(17),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46})}},
			}, {Name: func(v string) *string { return &v }("Field8"),
				Number: func(v int32) *int32 { return &v }(8),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47})}},
			}, {Name: func(v string) *string { return &v }("Field13"),
				Number: func(v int32) *int32 { return &v }(13),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x48})}},
			}, {Name: func(v string) *string { return &v }("Field14"),
				Number: func(v int32) *int32 { return &v }(14),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x49})}},
			}, {Name: func(v string) *string { return &v }("Field15"),
				Number: func(v int32) *int32 { return &v }(15),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4a})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameCustomType"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Id"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Value"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}, {Name: func(v string) *string { return &v }("Ids"),
				Number: func(v int32) *int32 { return &v }(3),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x4, 0x55, 0x75, 0x69, 0x64}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43})}},
			}, {Name: func(v string) *string { return &v }("Values"),
				Number: func(v int32) *int32 { return &v }(4),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(12),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65003: proto.NewExtension([]byte{0xda, 0xde, 0x1f, 0x2c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x2e, 0x55, 0x69, 0x6e, 0x74, 0x31, 0x32, 0x38}), 65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44})}},
			}},
		}, {Name: func(v string) *string { return &v }("CustomNameNinEmbeddedStructUnion"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NidOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65002: proto.NewExtension([]byte{0xd0, 0xde, 0x1f, 0x1})}},
			}, {Name: func(v string) *string { return &v }("Field200"),
				Number: func(v int32) *int32 { return &v }(200),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field210"),
				Number: func(v int32) *int32 { return &v }(210),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(8),
				Options: &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64009: proto.NewExtension([]byte{0xc8, 0xa0, 0x1f, 0x1})}},
		}, {Name: func(v string) *string { return &v }("CustomNameEnum"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x41})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(14),
				TypeName: func(v string) *string { return &v }(".test.TheTestEnum"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65004: proto.NewExtension([]byte{0xe2, 0xde, 0x1f, 0x6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x42})}},
			}},
		}, {Name: func(v string) *string { return &v }("NoExtensionsMap"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(3),
			}},
			ExtensionRange: []*google_protobuf.DescriptorProto_ExtensionRange{{Start: func(v int32) *int32 { return &v }(100),
				End: func(v int32) *int32 { return &v }(200),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64005: proto.NewExtension([]byte{0xa8, 0xa0, 0x1f, 0x0}), 64025: proto.NewExtension([]byte{0xc8, 0xa1, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("Unrecognized"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
			Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64026: proto.NewExtension([]byte{0xd0, 0xa1, 0x1f, 0x0})}},
		}, {Name: func(v string) *string { return &v }("UnrecognizedWithInner"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("embedded"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(3),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.UnrecognizedWithInner.Inner"),
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("Inner"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(13),
				}},
				Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64026: proto.NewExtension([]byte{0xd0, 0xa1, 0x1f, 0x0})}},
			}},
		}, {Name: func(v string) *string { return &v }("UnrecognizedWithEmbed"),
			Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("embedded"),
				Number: func(v int32) *int32 { return &v }(1),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(11),
				TypeName: func(v string) *string { return &v }(".test.UnrecognizedWithEmbed.Embedded"),
				Options:  &google_protobuf.FieldOptions{XXX_extensions: map[int32]proto.Extension{65001: proto.NewExtension([]byte{0xc8, 0xde, 0x1f, 0x0}), 65002: proto.NewExtension([]byte{0xd0, 0xde, 0x1f, 0x1})}},
			}, {Name: func(v string) *string { return &v }("Field2"),
				Number: func(v int32) *int32 { return &v }(2),
				Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
					return &v
				}(1),
				Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
					return &v
				}(9),
			}},
			NestedType: []*google_protobuf.DescriptorProto{{Name: func(v string) *string { return &v }("Embedded"),
				Field: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("Field1"),
					Number: func(v int32) *int32 { return &v }(1),
					Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
						return &v
					}(1),
					Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
						return &v
					}(13),
				}},
				Options: &google_protobuf.MessageOptions{XXX_extensions: map[int32]proto.Extension{64026: proto.NewExtension([]byte{0xd0, 0xa1, 0x1f, 0x0})}},
			}},
		}},
		EnumType: []*google_protobuf.EnumDescriptorProto{{Name: func(v string) *string { return &v }("TheTestEnum"),
			Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("A"),
				Number: func(v int32) *int32 { return &v }(0),
			}, {Name: func(v string) *string { return &v }("B"),
				Number: func(v int32) *int32 { return &v }(1),
			}, {Name: func(v string) *string { return &v }("C"),
				Number: func(v int32) *int32 { return &v }(2),
			}},
		}, {Name: func(v string) *string { return &v }("AnotherTestEnum"),
			Value: []*google_protobuf.EnumValueDescriptorProto{{Name: func(v string) *string { return &v }("D"),
				Number: func(v int32) *int32 { return &v }(10),
			}, {Name: func(v string) *string { return &v }("E"),
				Number: func(v int32) *int32 { return &v }(11),
			}},
			Options: &google_protobuf.EnumOptions{XXX_extensions: map[int32]proto.Extension{62001: proto.NewExtension([]byte{0x88, 0xa3, 0x1e, 0x0})}},
		}},
		Extension: []*google_protobuf.FieldDescriptorProto{{Name: func(v string) *string { return &v }("FieldA"),
			Number: func(v int32) *int32 { return &v }(100),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(1),
			Extendee: func(v string) *string { return &v }(".test.MyExtendable"),
		}, {Name: func(v string) *string { return &v }("FieldB"),
			Number: func(v int32) *int32 { return &v }(101),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(11),
			TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			Extendee: func(v string) *string { return &v }(".test.MyExtendable"),
		}, {Name: func(v string) *string { return &v }("FieldC"),
			Number: func(v int32) *int32 { return &v }(102),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(11),
			TypeName: func(v string) *string { return &v }(".test.NinEmbeddedStruct"),
			Extendee: func(v string) *string { return &v }(".test.MyExtendable"),
		}, {Name: func(v string) *string { return &v }("FieldA1"),
			Number: func(v int32) *int32 { return &v }(100),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(1),
			Extendee: func(v string) *string { return &v }(".test.NoExtensionsMap"),
		}, {Name: func(v string) *string { return &v }("FieldB1"),
			Number: func(v int32) *int32 { return &v }(101),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(11),
			TypeName: func(v string) *string { return &v }(".test.NinOptNative"),
			Extendee: func(v string) *string { return &v }(".test.NoExtensionsMap"),
		}, {Name: func(v string) *string { return &v }("FieldC1"),
			Number: func(v int32) *int32 { return &v }(102),
			Label: func(v google_protobuf.FieldDescriptorProto_Label) *google_protobuf.FieldDescriptorProto_Label {
				return &v
			}(1),
			Type: func(v google_protobuf.FieldDescriptorProto_Type) *google_protobuf.FieldDescriptorProto_Type {
				return &v
			}(11),
			TypeName: func(v string) *string { return &v }(".test.NinEmbeddedStruct"),
			Extendee: func(v string) *string { return &v }(".test.NoExtensionsMap"),
		}},
		Options: &google_protobuf.FileOptions{XXX_extensions: map[int32]proto.Extension{63001: proto.NewExtension([]byte{0xc8, 0xe1, 0x1e, 0x0}), 63002: proto.NewExtension([]byte{0xd0, 0xe1, 0x1e, 0x0}), 63003: proto.NewExtension([]byte{0xd8, 0xe1, 0x1e, 0x0}), 63004: proto.NewExtension([]byte{0xe0, 0xe1, 0x1e, 0x1}), 63005: proto.NewExtension([]byte{0xe8, 0xe1, 0x1e, 0x1}), 63006: proto.NewExtension([]byte{0xf0, 0xe1, 0x1e, 0x1}), 63007: proto.NewExtension([]byte{0xf8, 0xe1, 0x1e, 0x1}), 63008: proto.NewExtension([]byte{0x80, 0xe2, 0x1e, 0x1}), 63013: proto.NewExtension([]byte{0xa8, 0xe2, 0x1e, 0x1}), 63014: proto.NewExtension([]byte{0xb0, 0xe2, 0x1e, 0x1}), 63015: proto.NewExtension([]byte{0xb8, 0xe2, 0x1e, 0x1}), 63016: proto.NewExtension([]byte{0xc0, 0xe2, 0x1e, 0x1}), 63017: proto.NewExtension([]byte{0xc8, 0xe2, 0x1e, 0x0}), 63018: proto.NewExtension([]byte{0xd0, 0xe2, 0x1e, 0x1}), 63020: proto.NewExtension([]byte{0xe0, 0xe2, 0x1e, 0x1}), 63021: proto.NewExtension([]byte{0xe8, 0xe2, 0x1e, 0x0}), 63022: proto.NewExtension([]byte{0xf0, 0xe2, 0x1e, 0x1}), 63023: proto.NewExtension([]byte{0xf8, 0xe2, 0x1e, 0x0}), 63024: proto.NewExtension([]byte{0x80, 0xe3, 0x1e, 0x0})}},
	}},
	}
}
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 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 {
		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 *NidOptNativebut 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 {
		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 {
		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 *NinOptNativebut 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 {
		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 {
		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 *NidRepNativebut 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 {
		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 {
		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 *NinRepNativebut 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 {
		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 {
		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 *NidRepPackedNativebut 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 {
		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 {
		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 *NinRepPackedNativebut 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 {
		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 {
		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 *NidOptStructbut 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 {
		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 {
		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 *NinOptStructbut 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 {
		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 {
		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 *NidRepStructbut 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 {
		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 {
		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 *NinRepStructbut 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 {
		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 {
		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 *NidEmbeddedStructbut 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 {
		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 {
		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 *NinEmbeddedStructbut 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 {
		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 {
		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 *NidNestedStructbut 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 {
		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 {
		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 *NinNestedStructbut 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 {
		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 {
		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 *NidOptCustombut 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 {
		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 {
		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 *CustomDashbut 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 {
		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 {
		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 *NinOptCustombut 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 {
		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 {
		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 *NidRepCustombut 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 {
		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 {
		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 *NinRepCustombut 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 {
		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 {
		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 *NinOptNativeUnionbut 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 {
		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 {
		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 *NinOptStructUnionbut 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 {
		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 {
		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 *NinEmbeddedStructUnionbut 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 {
		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 {
		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 *NinNestedStructUnionbut 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 {
		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 {
		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 *Treebut 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 {
		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 {
		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 *OrBranchbut 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 {
		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 {
		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 *AndBranchbut 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 {
		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 {
		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 *Leafbut 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 {
		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 {
		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 *DeepTreebut 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 {
		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 {
		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 *ADeepBranchbut 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 {
		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 {
		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 *AndDeepBranchbut 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 {
		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 {
		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 *DeepLeafbut 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 {
		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 {
		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 *Nilbut 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 {
		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 {
		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 *NidOptEnumbut 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 {
		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 {
		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 *NinOptEnumbut 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_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 {
		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_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 {
		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 *NidRepEnumbut 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 !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 {
		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 !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 {
		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 *NinRepEnumbut 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 !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 {
		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 !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 {
		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 *NinOptEnumDefaultbut 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_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 {
		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_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 {
		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 *AnotherNinOptEnumbut 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_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 {
		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_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 {
		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 *AnotherNinOptEnumDefaultbut 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_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 {
		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_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 {
		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 *Timerbut 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 {
		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 {
		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 *MyExtendablebut 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)
	}
	for k, v := range this.XXX_extensions {
		if v2, ok := that1.XXX_extensions[k]; ok {
			if !v.Equal(&v2) {
				return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k])
			}
		} else {
			return fmt.Errorf("XXX_extensions[%v] Not In that", k)
		}
	}
	for k := range that1.XXX_extensions {
		if _, ok := this.XXX_extensions[k]; !ok {
			return fmt.Errorf("XXX_extensions[%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 {
		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
	}
	for k, v := range this.XXX_extensions {
		if v2, ok := that1.XXX_extensions[k]; ok {
			if !v.Equal(&v2) {
				return false
			}
		} else {
			return false
		}
	}
	for k := range that1.XXX_extensions {
		if _, ok := this.XXX_extensions[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 {
		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 *OtherExtenablebut 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)
	}
	for k, v := range this.XXX_extensions {
		if v2, ok := that1.XXX_extensions[k]; ok {
			if !v.Equal(&v2) {
				return fmt.Errorf("XXX_extensions this[%v](%v) Not Equal that[%v](%v)", k, this.XXX_extensions[k], k, that1.XXX_extensions[k])
			}
		} else {
			return fmt.Errorf("XXX_extensions[%v] Not In that", k)
		}
	}
	for k := range that1.XXX_extensions {
		if _, ok := this.XXX_extensions[k]; !ok {
			return fmt.Errorf("XXX_extensions[%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 {
		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
	}
	for k, v := range this.XXX_extensions {
		if v2, ok := that1.XXX_extensions[k]; ok {
			if !v.Equal(&v2) {
				return false
			}
		} else {
			return false
		}
	}
	for k := range that1.XXX_extensions {
		if _, ok := this.XXX_extensions[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 {
		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 *NestedDefinitionbut 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 {
		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 {
		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_NestedMessagebut 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 {
		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 {
		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_NestedNestedMsgbut 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 {
		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 {
		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 *NestedScopebut 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 {
		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 {
		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 *NinOptNativeDefaultbut 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 {
		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 {
		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 *CustomContainerbut 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 {
		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 {
		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 *CustomNameNidOptNativebut 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 {
		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 {
		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 *CustomNameNinOptNativebut 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 {
		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 {
		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 *CustomNameNinRepNativebut 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 {
		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 {
		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 *CustomNameNinStructbut 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 {
		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 {
		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 *CustomNameCustomTypebut 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 {
		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 {
		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 *CustomNameNinEmbeddedStructUnionbut 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 {
		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 {
		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 *CustomNameEnumbut 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 {
		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 {
		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 *NoExtensionsMapbut 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 {
		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 {
		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 *Unrecognizedbut 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 {
		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 {
		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 *UnrecognizedWithInnerbut 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 {
		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 {
		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_Innerbut 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 {
		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 {
		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 *UnrecognizedWithEmbedbut 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 {
		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 {
		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_Embeddedbut 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 {
		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
}

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
}

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 NewNinOptEnumFromFace(that NinOptEnumFace) *NinOptEnum {
	this := &NinOptEnum{}
	this.Field1 = that.GetField1()
	return this
}

type NidRepEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []TheTestEnum
}

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 NewNidRepEnumFromFace(that NidRepEnumFace) *NidRepEnum {
	this := &NidRepEnum{}
	this.Field1 = that.GetField1()
	return this
}

type NinRepEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() []TheTestEnum
}

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 NewNinRepEnumFromFace(that NinRepEnumFace) *NinRepEnum {
	this := &NinRepEnum{}
	this.Field1 = that.GetField1()
	return this
}

type AnotherNinOptEnumFace interface {
	Proto() github_com_gogo_protobuf_proto.Message
	GetField1() *AnotherTestEnum
}

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 NewAnotherNinOptEnumFromFace(that AnotherNinOptEnumFace) *AnotherNinOptEnum {
	this := &AnotherNinOptEnum{}
	this.Field1 = that.GetField1()
	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
}

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: "+strings.Replace(fmt.Sprintf("%#v", this.Field3), `&`, ``, 1)+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+strings.Replace(fmt.Sprintf("%#v", this.Field4), `&`, ``, 1)+",\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: "+strings.Replace(fmt.Sprintf("%#v", this.Field8), `&`, ``, 1)+",\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: "+strings.Replace(fmt.Sprintf("%#v", this.Field2), `&`, ``, 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 *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, 5)
	s = append(s, "&test.NinOptEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\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, 5)
	s = append(s, "&test.NidRepEnum{")
	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 *NinRepEnum) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NinRepEnum{")
	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 *NinOptEnumDefault) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&test.NinOptEnumDefault{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.TheTestEnum")+",\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, 5)
	s = append(s, "&test.AnotherNinOptEnum{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\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, 5)
	s = append(s, "&test.AnotherNinOptEnumDefault{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringThetest(this.Field1, "test.AnotherTestEnum")+",\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")
	}
	if this.XXX_extensions != nil {
		s = append(s, "XXX_extensions: "+extensionToGoStringThetest(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 *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")
	}
	if this.XXX_extensions != nil {
		s = append(s, "XXX_extensions: "+extensionToGoStringThetest(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 *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 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(e map[int32]github_com_gogo_protobuf_proto.Extension) string {
	if e == nil {
		return "nil"
	}
	s := "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 = 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 := 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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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] = randStringThetest(r)
		}
	}
	if r.Intn(10) != 0 {
		v31 := r.Intn(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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] = randStringThetest(r)
		}
	}
	if r.Intn(10) != 0 {
		v47 := r.Intn(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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(100)
		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 = 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 := 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(100)
		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(100)
		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(10)
		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(10)
		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(100)
		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(100)
		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(10)
		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(100)
		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] = randStringThetest(r)
		}
	}
	if r.Intn(10) != 0 {
		v98 := r.Intn(100)
		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(100)
		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(100)
		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(10)
		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(10)
		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(100)
		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(100)
		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(10)
		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(100)
		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] = randStringThetest(r)
		}
	}
	if r.Intn(10) != 0 {
		v109 := r.Intn(100)
		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(10)
		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(10)
		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 := 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 := 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 = 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 !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNidRepEnum(r randyThetest, easy bool) *NidRepEnum {
	this := &NidRepEnum{}
	if r.Intn(10) != 0 {
		v153 := r.Intn(10)
		this.Field1 = make([]TheTestEnum, v153)
		for i := 0; i < v153; i++ {
			this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinRepEnum(r randyThetest, easy bool) *NinRepEnum {
	this := &NinRepEnum{}
	if r.Intn(10) != 0 {
		v154 := r.Intn(10)
		this.Field1 = make([]TheTestEnum, v154)
		for i := 0; i < v154; i++ {
			this.Field1[i] = TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedNinOptEnumDefault(r randyThetest, easy bool) *NinOptEnumDefault {
	this := &NinOptEnumDefault{}
	if r.Intn(10) != 0 {
		v155 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.Field1 = &v155
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedAnotherNinOptEnum(r randyThetest, easy bool) *AnotherNinOptEnum {
	this := &AnotherNinOptEnum{}
	if r.Intn(10) != 0 {
		v156 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v156
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	return this
}

func NewPopulatedAnotherNinOptEnumDefault(r randyThetest, easy bool) *AnotherNinOptEnumDefault {
	this := &AnotherNinOptEnumDefault{}
	if r.Intn(10) != 0 {
		v157 := AnotherTestEnum([]int32{10, 11}[r.Intn(2)])
		this.Field1 = &v157
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedThetest(r, 2)
	}
	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
	}
	v158 := r.Intn(100)
	this.Data = make([]byte, v158)
	for i := 0; i < v158; 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 {
		v159 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v159 *= -1
		}
		this.Field1 = &v159
	}
	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 {
		v160 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v160 *= -1
		}
		this.Field2 = &v160
	}
	if r.Intn(10) != 0 {
		v161 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v161 *= -1
		}
		this.Field13 = &v161
	}
	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 {
		v162 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v162 *= -1
		}
		this.Field1 = &v162
	}
	if r.Intn(10) != 0 {
		v163 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.EnumField = &v163
	}
	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 {
		v164 := uint64(uint64(r.Uint32()))
		this.NestedField1 = &v164
	}
	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 {
		v165 := randStringThetest(r)
		this.NestedNestedField1 = &v165
	}
	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 {
		v166 := NestedDefinition_NestedEnum([]int32{1}[r.Intn(1)])
		this.B = &v166
	}
	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 {
		v167 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v167 *= -1
		}
		this.Field1 = &v167
	}
	if r.Intn(10) != 0 {
		v168 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v168 *= -1
		}
		this.Field2 = &v168
	}
	if r.Intn(10) != 0 {
		v169 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v169 *= -1
		}
		this.Field3 = &v169
	}
	if r.Intn(10) != 0 {
		v170 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v170 *= -1
		}
		this.Field4 = &v170
	}
	if r.Intn(10) != 0 {
		v171 := uint32(r.Uint32())
		this.Field5 = &v171
	}
	if r.Intn(10) != 0 {
		v172 := uint64(uint64(r.Uint32()))
		this.Field6 = &v172
	}
	if r.Intn(10) != 0 {
		v173 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v173 *= -1
		}
		this.Field7 = &v173
	}
	if r.Intn(10) != 0 {
		v174 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v174 *= -1
		}
		this.Field8 = &v174
	}
	if r.Intn(10) != 0 {
		v175 := uint32(r.Uint32())
		this.Field9 = &v175
	}
	if r.Intn(10) != 0 {
		v176 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v176 *= -1
		}
		this.Field10 = &v176
	}
	if r.Intn(10) != 0 {
		v177 := uint64(uint64(r.Uint32()))
		this.Field11 = &v177
	}
	if r.Intn(10) != 0 {
		v178 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v178 *= -1
		}
		this.Field12 = &v178
	}
	if r.Intn(10) != 0 {
		v179 := bool(bool(r.Intn(2) == 0))
		this.Field13 = &v179
	}
	if r.Intn(10) != 0 {
		v180 := randStringThetest(r)
		this.Field14 = &v180
	}
	if r.Intn(10) != 0 {
		v181 := r.Intn(100)
		this.Field15 = make([]byte, v181)
		for i := 0; i < v181; 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{}
	v182 := NewPopulatedNidOptCustom(r, easy)
	this.CustomStruct = *v182
	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 = randStringThetest(r)
	v183 := r.Intn(100)
	this.FieldO = make([]byte, v183)
	for i := 0; i < v183; 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 {
		v184 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v184 *= -1
		}
		this.FieldA = &v184
	}
	if r.Intn(10) != 0 {
		v185 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v185 *= -1
		}
		this.FieldB = &v185
	}
	if r.Intn(10) != 0 {
		v186 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v186 *= -1
		}
		this.FieldC = &v186
	}
	if r.Intn(10) != 0 {
		v187 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v187 *= -1
		}
		this.FieldD = &v187
	}
	if r.Intn(10) != 0 {
		v188 := uint32(r.Uint32())
		this.FieldE = &v188
	}
	if r.Intn(10) != 0 {
		v189 := uint64(uint64(r.Uint32()))
		this.FieldF = &v189
	}
	if r.Intn(10) != 0 {
		v190 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v190 *= -1
		}
		this.FieldG = &v190
	}
	if r.Intn(10) != 0 {
		v191 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v191 *= -1
		}
		this.FieldH = &v191
	}
	if r.Intn(10) != 0 {
		v192 := uint32(r.Uint32())
		this.FieldI = &v192
	}
	if r.Intn(10) != 0 {
		v193 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v193 *= -1
		}
		this.FieldJ = &v193
	}
	if r.Intn(10) != 0 {
		v194 := uint64(uint64(r.Uint32()))
		this.FieldK = &v194
	}
	if r.Intn(10) != 0 {
		v195 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v195 *= -1
		}
		this.FielL = &v195
	}
	if r.Intn(10) != 0 {
		v196 := bool(bool(r.Intn(2) == 0))
		this.FieldM = &v196
	}
	if r.Intn(10) != 0 {
		v197 := randStringThetest(r)
		this.FieldN = &v197
	}
	if r.Intn(10) != 0 {
		v198 := r.Intn(100)
		this.FieldO = make([]byte, v198)
		for i := 0; i < v198; 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 {
		v199 := r.Intn(100)
		this.FieldA = make([]float64, v199)
		for i := 0; i < v199; i++ {
			this.FieldA[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.FieldA[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v200 := r.Intn(100)
		this.FieldB = make([]float32, v200)
		for i := 0; i < v200; i++ {
			this.FieldB[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.FieldB[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v201 := r.Intn(100)
		this.FieldC = make([]int32, v201)
		for i := 0; i < v201; i++ {
			this.FieldC[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldC[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v202 := r.Intn(100)
		this.FieldD = make([]int64, v202)
		for i := 0; i < v202; i++ {
			this.FieldD[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldD[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v203 := r.Intn(100)
		this.FieldE = make([]uint32, v203)
		for i := 0; i < v203; i++ {
			this.FieldE[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(10) != 0 {
		v204 := r.Intn(100)
		this.FieldF = make([]uint64, v204)
		for i := 0; i < v204; i++ {
			this.FieldF[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(10) != 0 {
		v205 := r.Intn(100)
		this.FieldG = make([]int32, v205)
		for i := 0; i < v205; i++ {
			this.FieldG[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldG[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v206 := r.Intn(100)
		this.FieldH = make([]int64, v206)
		for i := 0; i < v206; i++ {
			this.FieldH[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldH[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v207 := r.Intn(100)
		this.FieldI = make([]uint32, v207)
		for i := 0; i < v207; i++ {
			this.FieldI[i] = uint32(r.Uint32())
		}
	}
	if r.Intn(10) != 0 {
		v208 := r.Intn(100)
		this.FieldJ = make([]int32, v208)
		for i := 0; i < v208; i++ {
			this.FieldJ[i] = int32(r.Int31())
			if r.Intn(2) == 0 {
				this.FieldJ[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v209 := r.Intn(100)
		this.FieldK = make([]uint64, v209)
		for i := 0; i < v209; i++ {
			this.FieldK[i] = uint64(uint64(r.Uint32()))
		}
	}
	if r.Intn(10) != 0 {
		v210 := r.Intn(100)
		this.FieldL = make([]int64, v210)
		for i := 0; i < v210; i++ {
			this.FieldL[i] = int64(r.Int63())
			if r.Intn(2) == 0 {
				this.FieldL[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v211 := r.Intn(100)
		this.FieldM = make([]bool, v211)
		for i := 0; i < v211; i++ {
			this.FieldM[i] = bool(bool(r.Intn(2) == 0))
		}
	}
	if r.Intn(10) != 0 {
		v212 := r.Intn(10)
		this.FieldN = make([]string, v212)
		for i := 0; i < v212; i++ {
			this.FieldN[i] = randStringThetest(r)
		}
	}
	if r.Intn(10) != 0 {
		v213 := r.Intn(100)
		this.FieldO = make([][]byte, v213)
		for i := 0; i < v213; i++ {
			v214 := r.Intn(100)
			this.FieldO[i] = make([]byte, v214)
			for j := 0; j < v214; 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 {
		v215 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v215 *= -1
		}
		this.FieldA = &v215
	}
	if r.Intn(10) != 0 {
		v216 := float32(r.Float32())
		if r.Intn(2) == 0 {
			v216 *= -1
		}
		this.FieldB = &v216
	}
	if r.Intn(10) != 0 {
		this.FieldC = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		v217 := r.Intn(10)
		this.FieldD = make([]*NinOptNative, v217)
		for i := 0; i < v217; i++ {
			this.FieldD[i] = NewPopulatedNinOptNative(r, easy)
		}
	}
	if r.Intn(10) != 0 {
		v218 := uint64(uint64(r.Uint32()))
		this.FieldE = &v218
	}
	if r.Intn(10) != 0 {
		v219 := int32(r.Int31())
		if r.Intn(2) == 0 {
			v219 *= -1
		}
		this.FieldF = &v219
	}
	if r.Intn(10) != 0 {
		this.FieldG = NewPopulatedNidOptNative(r, easy)
	}
	if r.Intn(10) != 0 {
		v220 := bool(bool(r.Intn(2) == 0))
		this.FieldH = &v220
	}
	if r.Intn(10) != 0 {
		v221 := randStringThetest(r)
		this.FieldI = &v221
	}
	if r.Intn(10) != 0 {
		v222 := r.Intn(100)
		this.FieldJ = make([]byte, v222)
		for i := 0; i < v222; 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 {
		v223 := r.Intn(10)
		this.FieldC = make([]Uuid, v223)
		for i := 0; i < v223; i++ {
			v224 := NewPopulatedUuid(r)
			this.FieldC[i] = *v224
		}
	}
	if r.Intn(10) != 0 {
		v225 := r.Intn(10)
		this.FieldD = make([]github_com_gogo_protobuf_test_custom.Uint128, v225)
		for i := 0; i < v225; i++ {
			v226 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
			this.FieldD[i] = *v226
		}
	}
	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:
		v227 := bool(bool(r.Intn(2) == 0))
		this.FieldB = &v227
	}
	return this
}

func NewPopulatedCustomNameEnum(r randyThetest, easy bool) *CustomNameEnum {
	this := &CustomNameEnum{}
	if r.Intn(10) != 0 {
		v228 := TheTestEnum([]int32{0, 1, 2}[r.Intn(3)])
		this.FieldA = &v228
	}
	if r.Intn(10) != 0 {
		v229 := r.Intn(10)
		this.FieldB = make([]TheTestEnum, v229)
		for i := 0; i < v229; 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 {
		v230 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v230 *= -1
		}
		this.Field1 = &v230
	}
	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 {
		v231 := randStringThetest(r)
		this.Field1 = &v231
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedUnrecognizedWithInner(r randyThetest, easy bool) *UnrecognizedWithInner {
	this := &UnrecognizedWithInner{}
	if r.Intn(10) != 0 {
		v232 := r.Intn(10)
		this.Embedded = make([]*UnrecognizedWithInner_Inner, v232)
		for i := 0; i < v232; i++ {
			this.Embedded[i] = NewPopulatedUnrecognizedWithInner_Inner(r, easy)
		}
	}
	if r.Intn(10) != 0 {
		v233 := randStringThetest(r)
		this.Field2 = &v233
	}
	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 {
		v234 := uint32(r.Uint32())
		this.Field1 = &v234
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedUnrecognizedWithEmbed(r randyThetest, easy bool) *UnrecognizedWithEmbed {
	this := &UnrecognizedWithEmbed{}
	v235 := NewPopulatedUnrecognizedWithEmbed_Embedded(r, easy)
	this.UnrecognizedWithEmbed_Embedded = *v235
	if r.Intn(10) != 0 {
		v236 := randStringThetest(r)
		this.Field2 = &v236
	}
	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 {
		v237 := uint32(r.Uint32())
		this.Field1 = &v237
	}
	if !easy && r.Intn(10) != 0 {
	}
	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 {
	v238 := r.Intn(100)
	tmps := make([]rune, v238)
	for i := 0; i < v238; 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))
		v239 := r.Int63()
		if r.Intn(2) == 0 {
			v239 *= -1
		}
		data = encodeVarintPopulateThetest(data, uint64(v239))
	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.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 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 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.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.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.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))
	}
	if m.XXX_extensions != nil {
		n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions)
	}
	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))
	}
	if m.XXX_extensions != nil {
		n += github_com_gogo_protobuf_proto.SizeOfExtensionMap(m.XXX_extensions)
	}
	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 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) + `,`,
		`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) + `,`,
		`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) + `,`,
		`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) + `,`,
		`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) + `,`,
		`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) + `,`,
		`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_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`,
		`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_extensions:` + proto.StringFromExtensionsMap(this.XXX_extensions) + `,`,
		`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:` + 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 valueToStringThetest(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (this *NinOptNativeUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	if this.Field4 != nil {
		return this.Field4
	}
	if this.Field5 != nil {
		return this.Field5
	}
	if this.Field6 != nil {
		return this.Field6
	}
	if this.Field13 != nil {
		return this.Field13
	}
	if this.Field14 != nil {
		return this.Field14
	}
	if this.Field15 != nil {
		return this.Field15
	}
	return nil
}

func (this *NinOptNativeUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *float64:
		this.Field1 = vt
	case *float32:
		this.Field2 = vt
	case *int32:
		this.Field3 = vt
	case *int64:
		this.Field4 = vt
	case *uint32:
		this.Field5 = vt
	case *uint64:
		this.Field6 = vt
	case *bool:
		this.Field13 = vt
	case *string:
		this.Field14 = vt
	case []byte:
		this.Field15 = vt
	default:
		return false
	}
	return true
}
func (this *NinOptStructUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	if this.Field4 != nil {
		return this.Field4
	}
	if this.Field6 != nil {
		return this.Field6
	}
	if this.Field7 != nil {
		return this.Field7
	}
	if this.Field13 != nil {
		return this.Field13
	}
	if this.Field14 != nil {
		return this.Field14
	}
	if this.Field15 != nil {
		return this.Field15
	}
	return nil
}

func (this *NinOptStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *float64:
		this.Field1 = vt
	case *float32:
		this.Field2 = vt
	case *NidOptNative:
		this.Field3 = vt
	case *NinOptNative:
		this.Field4 = vt
	case *uint64:
		this.Field6 = vt
	case *int32:
		this.Field7 = vt
	case *bool:
		this.Field13 = vt
	case *string:
		this.Field14 = vt
	case []byte:
		this.Field15 = vt
	default:
		return false
	}
	return true
}
func (this *NinEmbeddedStructUnion) GetValue() interface{} {
	if this.NidOptNative != nil {
		return this.NidOptNative
	}
	if this.Field200 != nil {
		return this.Field200
	}
	if this.Field210 != nil {
		return this.Field210
	}
	return nil
}

func (this *NinEmbeddedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NidOptNative:
		this.NidOptNative = vt
	case *NinOptNative:
		this.Field200 = vt
	case *bool:
		this.Field210 = vt
	default:
		return false
	}
	return true
}
func (this *NinNestedStructUnion) GetValue() interface{} {
	if this.Field1 != nil {
		return this.Field1
	}
	if this.Field2 != nil {
		return this.Field2
	}
	if this.Field3 != nil {
		return this.Field3
	}
	return nil
}

func (this *NinNestedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NinOptNativeUnion:
		this.Field1 = vt
	case *NinOptStructUnion:
		this.Field2 = vt
	case *NinEmbeddedStructUnion:
		this.Field3 = vt
	default:
		this.Field1 = new(NinOptNativeUnion)
		if set := this.Field1.SetValue(value); set {
			return true
		}
		this.Field1 = nil
		this.Field2 = new(NinOptStructUnion)
		if set := this.Field2.SetValue(value); set {
			return true
		}
		this.Field2 = nil
		this.Field3 = new(NinEmbeddedStructUnion)
		if set := this.Field3.SetValue(value); set {
			return true
		}
		this.Field3 = nil
		return false
	}
	return true
}
func (this *Tree) GetValue() interface{} {
	if this.Or != nil {
		return this.Or
	}
	if this.And != nil {
		return this.And
	}
	if this.Leaf != nil {
		return this.Leaf
	}
	return nil
}

func (this *Tree) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *OrBranch:
		this.Or = vt
	case *AndBranch:
		this.And = vt
	case *Leaf:
		this.Leaf = vt
	default:
		return false
	}
	return true
}
func (this *DeepTree) GetValue() interface{} {
	if this.Down != nil {
		return this.Down
	}
	if this.And != nil {
		return this.And
	}
	if this.Leaf != nil {
		return this.Leaf
	}
	return nil
}

func (this *DeepTree) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *ADeepBranch:
		this.Down = vt
	case *AndDeepBranch:
		this.And = vt
	case *DeepLeaf:
		this.Leaf = vt
	default:
		return false
	}
	return true
}
func (this *CustomNameNinEmbeddedStructUnion) GetValue() interface{} {
	if this.NidOptNative != nil {
		return this.NidOptNative
	}
	if this.FieldA != nil {
		return this.FieldA
	}
	if this.FieldB != nil {
		return this.FieldB
	}
	return nil
}

func (this *CustomNameNinEmbeddedStructUnion) SetValue(value interface{}) bool {
	switch vt := value.(type) {
	case *NidOptNative:
		this.NidOptNative = vt
	case *NinOptNative:
		this.FieldA = vt
	case *bool:
		this.FieldB = vt
	default:
		return false
	}
	return true
}
func (m *NidOptNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.Field1 = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.Field2 = float32(math.Float32frombits(v))
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			m.Field3 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field3 |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			m.Field4 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field4 |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			m.Field5 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field5 |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			m.Field6 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field6 |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.Field8 = int64(v)
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			m.Field9 = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			m.Field9 = uint32(data[iNdEx-4])
			m.Field9 |= uint32(data[iNdEx-3]) << 8
			m.Field9 |= uint32(data[iNdEx-2]) << 16
			m.Field9 |= uint32(data[iNdEx-1]) << 24
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			m.Field10 = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			m.Field10 = int32(data[iNdEx-4])
			m.Field10 |= int32(data[iNdEx-3]) << 8
			m.Field10 |= int32(data[iNdEx-2]) << 16
			m.Field10 |= int32(data[iNdEx-1]) << 24
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			m.Field11 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.Field11 = uint64(data[iNdEx-8])
			m.Field11 |= uint64(data[iNdEx-7]) << 8
			m.Field11 |= uint64(data[iNdEx-6]) << 16
			m.Field11 |= uint64(data[iNdEx-5]) << 24
			m.Field11 |= uint64(data[iNdEx-4]) << 32
			m.Field11 |= uint64(data[iNdEx-3]) << 40
			m.Field11 |= uint64(data[iNdEx-2]) << 48
			m.Field11 |= uint64(data[iNdEx-1]) << 56
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			m.Field12 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.Field12 = int64(data[iNdEx-8])
			m.Field12 |= int64(data[iNdEx-7]) << 8
			m.Field12 |= int64(data[iNdEx-6]) << 16
			m.Field12 |= int64(data[iNdEx-5]) << 24
			m.Field12 |= int64(data[iNdEx-4]) << 32
			m.Field12 |= int64(data[iNdEx-3]) << 40
			m.Field12 |= int64(data[iNdEx-2]) << 48
			m.Field12 |= int64(data[iNdEx-1]) << 56
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = string(data[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.Field8 = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			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
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.Field12 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidRepNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = append(m.Field1, v2)
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = append(m.Field2, v2)
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = append(m.Field3, v)
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = append(m.Field4, v)
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = append(m.Field5, v)
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = append(m.Field6, v)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = append(m.Field7, v)
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.Field8 = append(m.Field8, int64(v))
		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
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.Field9 = append(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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			m.Field10 = append(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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.Field11 = append(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
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.Field12 = append(m.Field12, v)
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = append(m.Field13, bool(v != 0))
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(data[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinRepNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = append(m.Field1, v2)
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = append(m.Field2, v2)
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = append(m.Field3, v)
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = append(m.Field4, v)
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = append(m.Field5, v)
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = append(m.Field6, v)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = append(m.Field7, v)
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.Field8 = append(m.Field8, int64(v))
		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
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.Field9 = append(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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			m.Field10 = append(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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.Field11 = append(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
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.Field12 = append(m.Field12, v)
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = append(m.Field13, bool(v != 0))
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(data[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidRepPackedNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidRepPackedNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = uint64(data[iNdEx-8])
					v |= uint64(data[iNdEx-7]) << 8
					v |= uint64(data[iNdEx-6]) << 16
					v |= uint64(data[iNdEx-5]) << 24
					v |= uint64(data[iNdEx-4]) << 32
					v |= uint64(data[iNdEx-3]) << 40
					v |= uint64(data[iNdEx-2]) << 48
					v |= uint64(data[iNdEx-1]) << 56
					v2 := float64(math.Float64frombits(v))
					m.Field1 = append(m.Field1, v2)
				}
			} else if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = uint64(data[iNdEx-8])
				v |= uint64(data[iNdEx-7]) << 8
				v |= uint64(data[iNdEx-6]) << 16
				v |= uint64(data[iNdEx-5]) << 24
				v |= uint64(data[iNdEx-4]) << 32
				v |= uint64(data[iNdEx-3]) << 40
				v |= uint64(data[iNdEx-2]) << 48
				v |= uint64(data[iNdEx-1]) << 56
				v2 := float64(math.Float64frombits(v))
				m.Field1 = append(m.Field1, v2)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = uint32(data[iNdEx-4])
					v |= uint32(data[iNdEx-3]) << 8
					v |= uint32(data[iNdEx-2]) << 16
					v |= uint32(data[iNdEx-1]) << 24
					v2 := float32(math.Float32frombits(v))
					m.Field2 = append(m.Field2, v2)
				}
			} else if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = uint32(data[iNdEx-4])
				v |= uint32(data[iNdEx-3]) << 8
				v |= uint32(data[iNdEx-2]) << 16
				v |= uint32(data[iNdEx-1]) << 24
				v2 := float32(math.Float32frombits(v))
				m.Field2 = append(m.Field2, v2)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = uint32(data[iNdEx-4])
					v |= uint32(data[iNdEx-3]) << 8
					v |= uint32(data[iNdEx-2]) << 16
					v |= uint32(data[iNdEx-1]) << 24
					m.Field9 = append(m.Field9, v)
				}
			} else if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = uint32(data[iNdEx-4])
				v |= uint32(data[iNdEx-3]) << 8
				v |= uint32(data[iNdEx-2]) << 16
				v |= uint32(data[iNdEx-1]) << 24
				m.Field9 = append(m.Field9, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = int32(data[iNdEx-4])
					v |= int32(data[iNdEx-3]) << 8
					v |= int32(data[iNdEx-2]) << 16
					v |= int32(data[iNdEx-1]) << 24
					m.Field10 = append(m.Field10, v)
				}
			} else if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = int32(data[iNdEx-4])
				v |= int32(data[iNdEx-3]) << 8
				v |= int32(data[iNdEx-2]) << 16
				v |= int32(data[iNdEx-1]) << 24
				m.Field10 = append(m.Field10, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = uint64(data[iNdEx-8])
					v |= uint64(data[iNdEx-7]) << 8
					v |= uint64(data[iNdEx-6]) << 16
					v |= uint64(data[iNdEx-5]) << 24
					v |= uint64(data[iNdEx-4]) << 32
					v |= uint64(data[iNdEx-3]) << 40
					v |= uint64(data[iNdEx-2]) << 48
					v |= uint64(data[iNdEx-1]) << 56
					m.Field11 = append(m.Field11, v)
				}
			} else if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = uint64(data[iNdEx-8])
				v |= uint64(data[iNdEx-7]) << 8
				v |= uint64(data[iNdEx-6]) << 16
				v |= uint64(data[iNdEx-5]) << 24
				v |= uint64(data[iNdEx-4]) << 32
				v |= uint64(data[iNdEx-3]) << 40
				v |= uint64(data[iNdEx-2]) << 48
				v |= uint64(data[iNdEx-1]) << 56
				m.Field11 = append(m.Field11, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = int64(data[iNdEx-8])
					v |= int64(data[iNdEx-7]) << 8
					v |= int64(data[iNdEx-6]) << 16
					v |= int64(data[iNdEx-5]) << 24
					v |= int64(data[iNdEx-4]) << 32
					v |= int64(data[iNdEx-3]) << 40
					v |= int64(data[iNdEx-2]) << 48
					v |= int64(data[iNdEx-1]) << 56
					m.Field12 = append(m.Field12, v)
				}
			} else if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = int64(data[iNdEx-8])
				v |= int64(data[iNdEx-7]) << 8
				v |= int64(data[iNdEx-6]) << 16
				v |= int64(data[iNdEx-5]) << 24
				v |= int64(data[iNdEx-4]) << 32
				v |= int64(data[iNdEx-3]) << 40
				v |= int64(data[iNdEx-2]) << 48
				v |= int64(data[iNdEx-1]) << 56
				m.Field12 = append(m.Field12, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinRepPackedNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinRepPackedNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepPackedNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = uint64(data[iNdEx-8])
					v |= uint64(data[iNdEx-7]) << 8
					v |= uint64(data[iNdEx-6]) << 16
					v |= uint64(data[iNdEx-5]) << 24
					v |= uint64(data[iNdEx-4]) << 32
					v |= uint64(data[iNdEx-3]) << 40
					v |= uint64(data[iNdEx-2]) << 48
					v |= uint64(data[iNdEx-1]) << 56
					v2 := float64(math.Float64frombits(v))
					m.Field1 = append(m.Field1, v2)
				}
			} else if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = uint64(data[iNdEx-8])
				v |= uint64(data[iNdEx-7]) << 8
				v |= uint64(data[iNdEx-6]) << 16
				v |= uint64(data[iNdEx-5]) << 24
				v |= uint64(data[iNdEx-4]) << 32
				v |= uint64(data[iNdEx-3]) << 40
				v |= uint64(data[iNdEx-2]) << 48
				v |= uint64(data[iNdEx-1]) << 56
				v2 := float64(math.Float64frombits(v))
				m.Field1 = append(m.Field1, v2)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
		case 2:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = uint32(data[iNdEx-4])
					v |= uint32(data[iNdEx-3]) << 8
					v |= uint32(data[iNdEx-2]) << 16
					v |= uint32(data[iNdEx-1]) << 24
					v2 := float32(math.Float32frombits(v))
					m.Field2 = append(m.Field2, v2)
				}
			} else if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = uint32(data[iNdEx-4])
				v |= uint32(data[iNdEx-3]) << 8
				v |= uint32(data[iNdEx-2]) << 16
				v |= uint32(data[iNdEx-1]) << 24
				v2 := float32(math.Float32frombits(v))
				m.Field2 = append(m.Field2, v2)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
		case 3:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field3 = append(m.Field3, v)
				}
			} else if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field3 = append(m.Field3, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
		case 4:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field4 = append(m.Field4, v)
				}
			} else if wireType == 0 {
				var v int64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field4 = append(m.Field4, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
		case 5:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field5 = append(m.Field5, v)
				}
			} else if wireType == 0 {
				var v uint32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field5 = append(m.Field5, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
		case 6:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field6 = append(m.Field6, v)
				}
			} else if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field6 = append(m.Field6, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
		case 7:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int32(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
					m.Field7 = append(m.Field7, v)
				}
			} else if wireType == 0 {
				var v int32
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int32(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
				m.Field7 = append(m.Field7, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
		case 8:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (uint64(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
					m.Field8 = append(m.Field8, int64(v))
				}
			} else if wireType == 0 {
				var v uint64
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
				m.Field8 = append(m.Field8, int64(v))
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
		case 9:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = uint32(data[iNdEx-4])
					v |= uint32(data[iNdEx-3]) << 8
					v |= uint32(data[iNdEx-2]) << 16
					v |= uint32(data[iNdEx-1]) << 24
					m.Field9 = append(m.Field9, v)
				}
			} else if wireType == 5 {
				var v uint32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = uint32(data[iNdEx-4])
				v |= uint32(data[iNdEx-3]) << 8
				v |= uint32(data[iNdEx-2]) << 16
				v |= uint32(data[iNdEx-1]) << 24
				m.Field9 = append(m.Field9, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
		case 10:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int32
					if (iNdEx + 4) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 4
					v = int32(data[iNdEx-4])
					v |= int32(data[iNdEx-3]) << 8
					v |= int32(data[iNdEx-2]) << 16
					v |= int32(data[iNdEx-1]) << 24
					m.Field10 = append(m.Field10, v)
				}
			} else if wireType == 5 {
				var v int32
				if (iNdEx + 4) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 4
				v = int32(data[iNdEx-4])
				v |= int32(data[iNdEx-3]) << 8
				v |= int32(data[iNdEx-2]) << 16
				v |= int32(data[iNdEx-1]) << 24
				m.Field10 = append(m.Field10, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
		case 11:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v uint64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = uint64(data[iNdEx-8])
					v |= uint64(data[iNdEx-7]) << 8
					v |= uint64(data[iNdEx-6]) << 16
					v |= uint64(data[iNdEx-5]) << 24
					v |= uint64(data[iNdEx-4]) << 32
					v |= uint64(data[iNdEx-3]) << 40
					v |= uint64(data[iNdEx-2]) << 48
					v |= uint64(data[iNdEx-1]) << 56
					m.Field11 = append(m.Field11, v)
				}
			} else if wireType == 1 {
				var v uint64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = uint64(data[iNdEx-8])
				v |= uint64(data[iNdEx-7]) << 8
				v |= uint64(data[iNdEx-6]) << 16
				v |= uint64(data[iNdEx-5]) << 24
				v |= uint64(data[iNdEx-4]) << 32
				v |= uint64(data[iNdEx-3]) << 40
				v |= uint64(data[iNdEx-2]) << 48
				v |= uint64(data[iNdEx-1]) << 56
				m.Field11 = append(m.Field11, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
		case 12:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int64
					if (iNdEx + 8) > l {
						return io.ErrUnexpectedEOF
					}
					iNdEx += 8
					v = int64(data[iNdEx-8])
					v |= int64(data[iNdEx-7]) << 8
					v |= int64(data[iNdEx-6]) << 16
					v |= int64(data[iNdEx-5]) << 24
					v |= int64(data[iNdEx-4]) << 32
					v |= int64(data[iNdEx-3]) << 40
					v |= int64(data[iNdEx-2]) << 48
					v |= int64(data[iNdEx-1]) << 56
					m.Field12 = append(m.Field12, v)
				}
			} else if wireType == 1 {
				var v int64
				if (iNdEx + 8) > l {
					return io.ErrUnexpectedEOF
				}
				iNdEx += 8
				v = int64(data[iNdEx-8])
				v |= int64(data[iNdEx-7]) << 8
				v |= int64(data[iNdEx-6]) << 16
				v |= int64(data[iNdEx-5]) << 24
				v |= int64(data[iNdEx-4]) << 32
				v |= int64(data[iNdEx-3]) << 40
				v |= int64(data[iNdEx-2]) << 48
				v |= int64(data[iNdEx-1]) << 56
				m.Field12 = append(m.Field12, v)
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
		case 13:
			if wireType == 2 {
				var packedLen int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					packedLen |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				if packedLen < 0 {
					return ErrInvalidLengthThetest
				}
				postIndex := iNdEx + packedLen
				if postIndex > l {
					return io.ErrUnexpectedEOF
				}
				for iNdEx < postIndex {
					var v int
					for shift := uint(0); ; shift += 7 {
						if shift >= 64 {
							return ErrIntOverflowThetest
						}
						if iNdEx >= l {
							return io.ErrUnexpectedEOF
						}
						b := data[iNdEx]
						iNdEx++
						v |= (int(b) & 0x7F) << shift
						if b < 0x80 {
							break
						}
					}
					m.Field13 = append(m.Field13, bool(v != 0))
				}
			} else if wireType == 0 {
				var v int
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					v |= (int(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				m.Field13 = append(m.Field13, bool(v != 0))
			} else {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidOptStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidOptStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.Field1 = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.Field2 = float32(math.Float32frombits(v))
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			m.Field6 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field6 |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = string(data[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NidOptNative{}
			}
			if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field4 == nil {
				m.Field4 = &NinOptNative{}
			}
			if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field8 == nil {
				m.Field8 = &NidOptNative{}
			}
			if err := m.Field8.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidRepStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidRepStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = append(m.Field1, v2)
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = append(m.Field2, v2)
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field3 = append(m.Field3, NidOptNative{})
			if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > 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 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = append(m.Field6, v)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = append(m.Field7, v)
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > 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 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = append(m.Field13, bool(v != 0))
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(data[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinRepStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinRepStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = append(m.Field1, v2)
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = append(m.Field2, v2)
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field3 = append(m.Field3, &NidOptNative{})
			if err := m.Field3[len(m.Field3)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > 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 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = append(m.Field6, v)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = append(m.Field7, v)
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > 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 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = append(m.Field13, bool(v != 0))
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field14 = append(m.Field14, string(data[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append(m.Field15, make([]byte, postIndex-iNdEx))
			copy(m.Field15[len(m.Field15)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidEmbeddedStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidEmbeddedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field210 = bool(v != 0)
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinEmbeddedStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinEmbeddedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinEmbeddedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field200 == nil {
				m.Field200 = &NidOptNative{}
			}
			if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field210 = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidNestedStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidNestedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = append(m.Field2, NidRepStruct{})
			if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinNestedStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinNestedStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinNestedStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &NinOptStruct{}
			}
			if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field2 = append(m.Field2, &NinRepStruct{})
			if err := m.Field2[len(m.Field2)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidOptCustom) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidOptCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomDash) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomDash: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomDash: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom_dash_type.Bytes
			m.Value = &v
			if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptCustom) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = &v
			if err := m.Id.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = &v
			if err := m.Value.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidRepCustom) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidRepCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = append(m.Id, v)
			if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = append(m.Value, v)
			if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinRepCustom) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinRepCustom: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepCustom: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.Id = append(m.Id, v)
			if err := m.Id[len(m.Id)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.Value = append(m.Value, v)
			if err := m.Value[len(m.Value)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptNativeUnion) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptNativeUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNativeUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptStructUnion) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NidOptNative{}
			}
			if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field4 == nil {
				m.Field4 = &NinOptNative{}
			}
			if err := m.Field4.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinEmbeddedStructUnion) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinEmbeddedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field200", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field200 == nil {
				m.Field200 = &NinOptNative{}
			}
			if err := m.Field200.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field210", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field210 = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinNestedStructUnion) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinNestedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinNestedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field1 == nil {
				m.Field1 = &NinOptNativeUnion{}
			}
			if err := m.Field1.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field2 == nil {
				m.Field2 = &NinOptStructUnion{}
			}
			if err := m.Field2.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Field3 == nil {
				m.Field3 = &NinEmbeddedStructUnion{}
			}
			if err := m.Field3.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Tree) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Tree: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Tree: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Or", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Or == nil {
				m.Or = &OrBranch{}
			}
			if err := m.Or.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field And", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.And == nil {
				m.And = &AndBranch{}
			}
			if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Leaf == nil {
				m.Leaf = &Leaf{}
			}
			if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *OrBranch) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: OrBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OrBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AndBranch) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AndBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AndBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Leaf) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Leaf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Leaf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType)
			}
			m.Value = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Value |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StrValue", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.StrValue = string(data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DeepTree) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DeepTree: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeepTree: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Down == nil {
				m.Down = &ADeepBranch{}
			}
			if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field And", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.And == nil {
				m.And = &AndDeepBranch{}
			}
			if err := m.And.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Leaf", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Leaf == nil {
				m.Leaf = &DeepLeaf{}
			}
			if err := m.Leaf.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *ADeepBranch) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: ADeepBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ADeepBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Down", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Down.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AndDeepBranch) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AndDeepBranch: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AndDeepBranch: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Left", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Left.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Right", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Right.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *DeepLeaf) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: DeepLeaf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: DeepLeaf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Tree", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.Tree.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Nil) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Nil: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Nil: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidOptEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			m.Field1 = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.Field1 |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NidRepEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NidRepEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NidRepEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = append(m.Field1, v)
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinRepEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinRepEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinRepEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = append(m.Field1, v)
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptEnumDefault) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptEnumDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AnotherNinOptEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AnotherNinOptEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AnotherNinOptEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v AnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (AnotherTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *AnotherNinOptEnumDefault) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: AnotherNinOptEnumDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AnotherNinOptEnumDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v AnotherTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (AnotherTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Timer) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Timer: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Timer: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Time1", wireType)
			}
			m.Time1 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.Time1 = int64(data[iNdEx-8])
			m.Time1 |= int64(data[iNdEx-7]) << 8
			m.Time1 |= int64(data[iNdEx-6]) << 16
			m.Time1 |= int64(data[iNdEx-5]) << 24
			m.Time1 |= int64(data[iNdEx-4]) << 32
			m.Time1 |= int64(data[iNdEx-3]) << 40
			m.Time1 |= int64(data[iNdEx-2]) << 48
			m.Time1 |= int64(data[iNdEx-1]) << 56
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Time2", wireType)
			}
			m.Time2 = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.Time2 = int64(data[iNdEx-8])
			m.Time2 |= int64(data[iNdEx-7]) << 8
			m.Time2 |= int64(data[iNdEx-6]) << 16
			m.Time2 |= int64(data[iNdEx-5]) << 24
			m.Time2 |= int64(data[iNdEx-4]) << 32
			m.Time2 |= int64(data[iNdEx-3]) << 40
			m.Time2 |= int64(data[iNdEx-2]) << 48
			m.Time2 |= int64(data[iNdEx-1]) << 56
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Data = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *MyExtendable) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: MyExtendable: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MyExtendable: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			if (fieldNum >= 100) && (fieldNum < 200) {
				var sizeOfWire int
				for {
					sizeOfWire++
					wire >>= 7
					if wire == 0 {
						break
					}
				}
				iNdEx -= sizeOfWire
				skippy, err := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				if m.XXX_extensions == nil {
					m.XXX_extensions = make(map[int32]github_com_gogo_protobuf_proto.Extension)
				}
				m.XXX_extensions[int32(fieldNum)] = github_com_gogo_protobuf_proto.NewExtension(data[iNdEx : iNdEx+skippy])
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
				iNdEx += skippy
			}
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *OtherExtenable) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: OtherExtenable: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OtherExtenable: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field2 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field13 = &v
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field M", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > 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 := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				if m.XXX_extensions == nil {
					m.XXX_extensions = make(map[int32]github_com_gogo_protobuf_proto.Extension)
				}
				m.XXX_extensions[int32(fieldNum)] = github_com_gogo_protobuf_proto.NewExtension(data[iNdEx : iNdEx+skippy])
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
				iNdEx += skippy
			}
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NestedDefinition) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NestedDefinition: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedDefinition: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field EnumField", wireType)
			}
			var v NestedDefinition_NestedEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.EnumField = &v
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NNM == nil {
				m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NM == nil {
				m.NM = &NestedDefinition_NestedMessage{}
			}
			if err := m.NM.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NestedDefinition_NestedMessage) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NestedMessage: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedMessage: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field NestedField1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.NestedField1 = &v
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NNM", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NNM == nil {
				m.NNM = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.NNM.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NestedDefinition_NestedMessage_NestedNestedMsg) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NestedNestedMsg: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedNestedMsg: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 10:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NestedNestedField1", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.NestedNestedField1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NestedScope) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NestedScope: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NestedScope: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field A", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.A == nil {
				m.A = &NestedDefinition_NestedMessage_NestedNestedMsg{}
			}
			if err := m.A.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field B", wireType)
			}
			var v NestedDefinition_NestedEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (NestedDefinition_NestedEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.B = &v
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field C", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.C == nil {
				m.C = &NestedDefinition_NestedMessage{}
			}
			if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NinOptNativeDefault) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NinOptNativeDefault: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NinOptNativeDefault: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field1 = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field4 = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field5 = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.Field7 = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field8", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.Field8 = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field9", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			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
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.Field12 = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field13", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.Field13 = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field14", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field14 = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field15", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field15 = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomContainer) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomContainer: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomContainer: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CustomStruct", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.CustomStruct.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameNidOptNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameNidOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNidOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.FieldA = float64(math.Float64frombits(v))
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.FieldB = float32(math.Float32frombits(v))
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			m.FieldC = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.FieldC |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			m.FieldD = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.FieldD |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			m.FieldE = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.FieldE |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			m.FieldF = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				m.FieldF |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldG = v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.FieldH = int64(v)
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			m.FieldI = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			m.FieldI = uint32(data[iNdEx-4])
			m.FieldI |= uint32(data[iNdEx-3]) << 8
			m.FieldI |= uint32(data[iNdEx-2]) << 16
			m.FieldI |= uint32(data[iNdEx-1]) << 24
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			m.FieldJ = 0
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			m.FieldJ = int32(data[iNdEx-4])
			m.FieldJ |= int32(data[iNdEx-3]) << 8
			m.FieldJ |= int32(data[iNdEx-2]) << 16
			m.FieldJ |= int32(data[iNdEx-1]) << 24
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldK", wireType)
			}
			m.FieldK = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.FieldK = uint64(data[iNdEx-8])
			m.FieldK |= uint64(data[iNdEx-7]) << 8
			m.FieldK |= uint64(data[iNdEx-6]) << 16
			m.FieldK |= uint64(data[iNdEx-5]) << 24
			m.FieldK |= uint64(data[iNdEx-4]) << 32
			m.FieldK |= uint64(data[iNdEx-3]) << 40
			m.FieldK |= uint64(data[iNdEx-2]) << 48
			m.FieldK |= uint64(data[iNdEx-1]) << 56
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType)
			}
			m.FieldL = 0
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			m.FieldL = int64(data[iNdEx-8])
			m.FieldL |= int64(data[iNdEx-7]) << 8
			m.FieldL |= int64(data[iNdEx-6]) << 16
			m.FieldL |= int64(data[iNdEx-5]) << 24
			m.FieldL |= int64(data[iNdEx-4]) << 32
			m.FieldL |= int64(data[iNdEx-3]) << 40
			m.FieldL |= int64(data[iNdEx-2]) << 48
			m.FieldL |= int64(data[iNdEx-1]) << 56
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldM = bool(v != 0)
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldN = string(data[iNdEx:postIndex])
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameNinOptNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameNinOptNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinOptNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.FieldA = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.FieldB = &v2
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldC = &v
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldD = &v
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldE = &v
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldF = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldG = &v
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			v2 := int64(v)
			m.FieldH = &v2
		case 9:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			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
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.FielL = &v
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldM = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.FieldN = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameNinRepNative) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameNinRepNative: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinRepNative: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.FieldA = append(m.FieldA, v2)
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.FieldB = append(m.FieldB, v2)
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldC = append(m.FieldC, v)
		case 4:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldD = append(m.FieldD, v)
		case 5:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldE = append(m.FieldE, v)
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldF = append(m.FieldF, v)
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldG = append(m.FieldG, v)
		case 8:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63)
			m.FieldH = append(m.FieldH, int64(v))
		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
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			m.FieldI = append(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
			}
			iNdEx += 4
			v = int32(data[iNdEx-4])
			v |= int32(data[iNdEx-3]) << 8
			v |= int32(data[iNdEx-2]) << 16
			v |= int32(data[iNdEx-1]) << 24
			m.FieldJ = append(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
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			m.FieldK = append(m.FieldK, v)
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldL", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = int64(data[iNdEx-8])
			v |= int64(data[iNdEx-7]) << 8
			v |= int64(data[iNdEx-6]) << 16
			v |= int64(data[iNdEx-5]) << 24
			v |= int64(data[iNdEx-4]) << 32
			v |= int64(data[iNdEx-3]) << 40
			v |= int64(data[iNdEx-2]) << 48
			v |= int64(data[iNdEx-1]) << 56
			m.FieldL = append(m.FieldL, v)
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldM", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldM = append(m.FieldM, bool(v != 0))
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldN", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldN = append(m.FieldN, string(data[iNdEx:postIndex]))
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldO", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldO = append(m.FieldO, make([]byte, postIndex-iNdEx))
			copy(m.FieldO[len(m.FieldO)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameNinStruct) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameNinStruct: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinStruct: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.FieldA = &v2
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.FieldB = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldC == nil {
				m.FieldC = &NidOptNative{}
			}
			if err := m.FieldC.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldD = append(m.FieldD, &NinOptNative{})
			if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldE", wireType)
			}
			var v uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldE = &v
		case 7:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldF", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31))
			m.FieldF = &v
		case 8:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldG", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldG == nil {
				m.FieldG = &NidOptNative{}
			}
			if err := m.FieldG.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 13:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldH", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldH = &b
		case 14:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldI", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.FieldI = &s
			iNdEx = postIndex
		case 15:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldJ", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.FieldJ = append([]byte{}, data[iNdEx:postIndex]...)
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameCustomType) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameCustomType: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameCustomType: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.FieldA = &v
			if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.FieldB = &v
			if err := m.FieldB.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldC", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v Uuid
			m.FieldC = append(m.FieldC, v)
			if err := m.FieldC[len(m.FieldC)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldD", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var v github_com_gogo_protobuf_test_custom.Uint128
			m.FieldD = append(m.FieldD, v)
			if err := m.FieldD[len(m.FieldD)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameNinEmbeddedStructUnion) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameNinEmbeddedStructUnion: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameNinEmbeddedStructUnion: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field NidOptNative", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.NidOptNative == nil {
				m.NidOptNative = &NidOptNative{}
			}
			if err := m.NidOptNative.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 200:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.FieldA == nil {
				m.FieldA = &NinOptNative{}
			}
			if err := m.FieldA.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 210:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.FieldB = &b
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *CustomNameEnum) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: CustomNameEnum: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomNameEnum: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldA", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldA = &v
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field FieldB", wireType)
			}
			var v TheTestEnum
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (TheTestEnum(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.FieldB = append(m.FieldB, v)
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *NoExtensionsMap) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: NoExtensionsMap: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: NoExtensionsMap: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			if (fieldNum >= 100) && (fieldNum < 200) {
				var sizeOfWire int
				for {
					sizeOfWire++
					wire >>= 7
					if wire == 0 {
						break
					}
				}
				iNdEx -= sizeOfWire
				skippy, err := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				m.XXX_extensions = append(m.XXX_extensions, data[iNdEx:iNdEx+skippy]...)
				iNdEx += skippy
			} else {
				iNdEx = preIndex
				skippy, err := skipThetest(data[iNdEx:])
				if err != nil {
					return err
				}
				if skippy < 0 {
					return ErrInvalidLengthThetest
				}
				if (iNdEx + skippy) > l {
					return io.ErrUnexpectedEOF
				}
				m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
				iNdEx += skippy
			}
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *Unrecognized) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Unrecognized: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Unrecognized: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field1 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithInner) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: UnrecognizedWithInner: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnrecognizedWithInner: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Embedded", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Embedded = append(m.Embedded, &UnrecognizedWithInner_Inner{})
			if err := m.Embedded[len(m.Embedded)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithInner_Inner) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Inner: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Inner: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithEmbed) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: UnrecognizedWithEmbed: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: UnrecognizedWithEmbed: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field UnrecognizedWithEmbed_Embedded", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if err := m.UnrecognizedWithEmbed_Embedded.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				stringLen |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			intStringLen := int(stringLen)
			if intStringLen < 0 {
				return ErrInvalidLengthThetest
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field2 = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			m.XXX_unrecognized = append(m.XXX_unrecognized, data[iNdEx:iNdEx+skippy]...)
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *UnrecognizedWithEmbed_Embedded) Unmarshal(data []byte) error {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		preIndex := iNdEx
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		fieldNum := int32(wire >> 3)
		wireType := int(wire & 0x7)
		if wireType == 4 {
			return fmt.Errorf("proto: Embedded: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Embedded: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipThetest(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthThetest
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func skipThetest(data []byte) (n int, err error) {
	l := len(data)
	iNdEx := 0
	for iNdEx < l {
		var wire uint64
		for shift := uint(0); ; shift += 7 {
			if shift >= 64 {
				return 0, ErrIntOverflowThetest
			}
			if iNdEx >= l {
				return 0, io.ErrUnexpectedEOF
			}
			b := data[iNdEx]
			iNdEx++
			wire |= (uint64(b) & 0x7F) << shift
			if b < 0x80 {
				break
			}
		}
		wireType := int(wire & 0x7)
		switch wireType {
		case 0:
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				iNdEx++
				if data[iNdEx-1] < 0x80 {
					break
				}
			}
			return iNdEx, nil
		case 1:
			iNdEx += 8
			return iNdEx, nil
		case 2:
			var length int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return 0, ErrIntOverflowThetest
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			iNdEx += length
			if length < 0 {
				return 0, ErrInvalidLengthThetest
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowThetest
					}
					if iNdEx >= l {
						return 0, io.ErrUnexpectedEOF
					}
					b := data[iNdEx]
					iNdEx++
					innerWire |= (uint64(b) & 0x7F) << shift
					if b < 0x80 {
						break
					}
				}
				innerWireType := int(innerWire & 0x7)
				if innerWireType == 4 {
					break
				}
				next, err := skipThetest(data[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

var (
	ErrInvalidLengthThetest = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowThetest   = fmt.Errorf("proto: integer overflow")
)
