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

package one

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

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

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

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

func (m *Subby) Reset()      { *m = Subby{} }
func (*Subby) ProtoMessage() {}
func (*Subby) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{0}
}
func (m *Subby) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *Subby) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Subby.Marshal(b, m, deterministic)
}
func (m *Subby) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Subby.Merge(m, src)
}
func (m *Subby) XXX_Size() int {
	return xxx_messageInfo_Subby.Size(m)
}
func (m *Subby) XXX_DiscardUnknown() {
	xxx_messageInfo_Subby.DiscardUnknown(m)
}

var xxx_messageInfo_Subby proto.InternalMessageInfo

type AllTypesOneOf struct {
	// Types that are valid to be assigned to TestOneof:
	//	*AllTypesOneOf_Field1
	//	*AllTypesOneOf_Field2
	//	*AllTypesOneOf_Field3
	//	*AllTypesOneOf_Field4
	//	*AllTypesOneOf_Field5
	//	*AllTypesOneOf_Field6
	//	*AllTypesOneOf_Field7
	//	*AllTypesOneOf_Field8
	//	*AllTypesOneOf_Field9
	//	*AllTypesOneOf_Field10
	//	*AllTypesOneOf_Field11
	//	*AllTypesOneOf_Field12
	//	*AllTypesOneOf_Field13
	//	*AllTypesOneOf_Field14
	//	*AllTypesOneOf_Field15
	//	*AllTypesOneOf_SubMessage
	TestOneof            isAllTypesOneOf_TestOneof `protobuf_oneof:"test_oneof"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *AllTypesOneOf) Reset()      { *m = AllTypesOneOf{} }
func (*AllTypesOneOf) ProtoMessage() {}
func (*AllTypesOneOf) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{1}
}
func (m *AllTypesOneOf) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *AllTypesOneOf) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_AllTypesOneOf.Marshal(b, m, deterministic)
}
func (m *AllTypesOneOf) XXX_Merge(src proto.Message) {
	xxx_messageInfo_AllTypesOneOf.Merge(m, src)
}
func (m *AllTypesOneOf) XXX_Size() int {
	return xxx_messageInfo_AllTypesOneOf.Size(m)
}
func (m *AllTypesOneOf) XXX_DiscardUnknown() {
	xxx_messageInfo_AllTypesOneOf.DiscardUnknown(m)
}

var xxx_messageInfo_AllTypesOneOf proto.InternalMessageInfo

type isAllTypesOneOf_TestOneof interface {
	isAllTypesOneOf_TestOneof()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
	Compare(interface{}) int
}

type AllTypesOneOf_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"`
}
type AllTypesOneOf_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"`
}
type AllTypesOneOf_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"`
}
type AllTypesOneOf_Field4 struct {
	Field4 int64 `protobuf:"varint,4,opt,name=Field4,oneof"`
}
type AllTypesOneOf_Field5 struct {
	Field5 uint32 `protobuf:"varint,5,opt,name=Field5,oneof"`
}
type AllTypesOneOf_Field6 struct {
	Field6 uint64 `protobuf:"varint,6,opt,name=Field6,oneof"`
}
type AllTypesOneOf_Field7 struct {
	Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,oneof"`
}
type AllTypesOneOf_Field8 struct {
	Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,oneof"`
}
type AllTypesOneOf_Field9 struct {
	Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,oneof"`
}
type AllTypesOneOf_Field10 struct {
	Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,oneof"`
}
type AllTypesOneOf_Field11 struct {
	Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,oneof"`
}
type AllTypesOneOf_Field12 struct {
	Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,oneof"`
}
type AllTypesOneOf_Field13 struct {
	Field13 bool `protobuf:"varint,13,opt,name=Field13,oneof"`
}
type AllTypesOneOf_Field14 struct {
	Field14 string `protobuf:"bytes,14,opt,name=Field14,oneof"`
}
type AllTypesOneOf_Field15 struct {
	Field15 []byte `protobuf:"bytes,15,opt,name=Field15,oneof"`
}
type AllTypesOneOf_SubMessage struct {
	SubMessage *Subby `protobuf:"bytes,16,opt,name=sub_message,json=subMessage,oneof"`
}

func (*AllTypesOneOf_Field1) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field2) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field3) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field4) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field5) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field6) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field7) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field8) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field9) isAllTypesOneOf_TestOneof()     {}
func (*AllTypesOneOf_Field10) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field11) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field12) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field13) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field14) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_Field15) isAllTypesOneOf_TestOneof()    {}
func (*AllTypesOneOf_SubMessage) isAllTypesOneOf_TestOneof() {}

func (m *AllTypesOneOf) GetTestOneof() isAllTypesOneOf_TestOneof {
	if m != nil {
		return m.TestOneof
	}
	return nil
}

func (m *AllTypesOneOf) GetField1() float64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field1); ok {
		return x.Field1
	}
	return 0
}

func (m *AllTypesOneOf) GetField2() float32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field2); ok {
		return x.Field2
	}
	return 0
}

func (m *AllTypesOneOf) GetField3() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field3); ok {
		return x.Field3
	}
	return 0
}

func (m *AllTypesOneOf) GetField4() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field4); ok {
		return x.Field4
	}
	return 0
}

func (m *AllTypesOneOf) GetField5() uint32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field5); ok {
		return x.Field5
	}
	return 0
}

func (m *AllTypesOneOf) GetField6() uint64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field6); ok {
		return x.Field6
	}
	return 0
}

func (m *AllTypesOneOf) GetField7() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field7); ok {
		return x.Field7
	}
	return 0
}

func (m *AllTypesOneOf) GetField8() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field8); ok {
		return x.Field8
	}
	return 0
}

func (m *AllTypesOneOf) GetField9() uint32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field9); ok {
		return x.Field9
	}
	return 0
}

func (m *AllTypesOneOf) GetField10() int32 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field10); ok {
		return x.Field10
	}
	return 0
}

func (m *AllTypesOneOf) GetField11() uint64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field11); ok {
		return x.Field11
	}
	return 0
}

func (m *AllTypesOneOf) GetField12() int64 {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field12); ok {
		return x.Field12
	}
	return 0
}

func (m *AllTypesOneOf) GetField13() bool {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field13); ok {
		return x.Field13
	}
	return false
}

func (m *AllTypesOneOf) GetField14() string {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field14); ok {
		return x.Field14
	}
	return ""
}

func (m *AllTypesOneOf) GetField15() []byte {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_Field15); ok {
		return x.Field15
	}
	return nil
}

func (m *AllTypesOneOf) GetSubMessage() *Subby {
	if x, ok := m.GetTestOneof().(*AllTypesOneOf_SubMessage); ok {
		return x.SubMessage
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*AllTypesOneOf) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*AllTypesOneOf_Field1)(nil),
		(*AllTypesOneOf_Field2)(nil),
		(*AllTypesOneOf_Field3)(nil),
		(*AllTypesOneOf_Field4)(nil),
		(*AllTypesOneOf_Field5)(nil),
		(*AllTypesOneOf_Field6)(nil),
		(*AllTypesOneOf_Field7)(nil),
		(*AllTypesOneOf_Field8)(nil),
		(*AllTypesOneOf_Field9)(nil),
		(*AllTypesOneOf_Field10)(nil),
		(*AllTypesOneOf_Field11)(nil),
		(*AllTypesOneOf_Field12)(nil),
		(*AllTypesOneOf_Field13)(nil),
		(*AllTypesOneOf_Field14)(nil),
		(*AllTypesOneOf_Field15)(nil),
		(*AllTypesOneOf_SubMessage)(nil),
	}
}

type TwoOneofs struct {
	// Types that are valid to be assigned to One:
	//	*TwoOneofs_Field1
	//	*TwoOneofs_Field2
	//	*TwoOneofs_Field3
	One isTwoOneofs_One `protobuf_oneof:"one"`
	// Types that are valid to be assigned to Two:
	//	*TwoOneofs_Field34
	//	*TwoOneofs_Field35
	//	*TwoOneofs_SubMessage2
	Two                  isTwoOneofs_Two `protobuf_oneof:"two"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *TwoOneofs) Reset()      { *m = TwoOneofs{} }
func (*TwoOneofs) ProtoMessage() {}
func (*TwoOneofs) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{2}
}
func (m *TwoOneofs) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *TwoOneofs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TwoOneofs.Marshal(b, m, deterministic)
}
func (m *TwoOneofs) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TwoOneofs.Merge(m, src)
}
func (m *TwoOneofs) XXX_Size() int {
	return xxx_messageInfo_TwoOneofs.Size(m)
}
func (m *TwoOneofs) XXX_DiscardUnknown() {
	xxx_messageInfo_TwoOneofs.DiscardUnknown(m)
}

var xxx_messageInfo_TwoOneofs proto.InternalMessageInfo

type isTwoOneofs_One interface {
	isTwoOneofs_One()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
	Compare(interface{}) int
}
type isTwoOneofs_Two interface {
	isTwoOneofs_Two()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
	Compare(interface{}) int
}

type TwoOneofs_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,oneof"`
}
type TwoOneofs_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,oneof"`
}
type TwoOneofs_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,oneof"`
}
type TwoOneofs_Field34 struct {
	Field34 string `protobuf:"bytes,34,opt,name=Field34,oneof"`
}
type TwoOneofs_Field35 struct {
	Field35 []byte `protobuf:"bytes,35,opt,name=Field35,oneof"`
}
type TwoOneofs_SubMessage2 struct {
	SubMessage2 *Subby `protobuf:"bytes,36,opt,name=sub_message2,json=subMessage2,oneof"`
}

func (*TwoOneofs_Field1) isTwoOneofs_One()      {}
func (*TwoOneofs_Field2) isTwoOneofs_One()      {}
func (*TwoOneofs_Field3) isTwoOneofs_One()      {}
func (*TwoOneofs_Field34) isTwoOneofs_Two()     {}
func (*TwoOneofs_Field35) isTwoOneofs_Two()     {}
func (*TwoOneofs_SubMessage2) isTwoOneofs_Two() {}

func (m *TwoOneofs) GetOne() isTwoOneofs_One {
	if m != nil {
		return m.One
	}
	return nil
}
func (m *TwoOneofs) GetTwo() isTwoOneofs_Two {
	if m != nil {
		return m.Two
	}
	return nil
}

func (m *TwoOneofs) GetField1() float64 {
	if x, ok := m.GetOne().(*TwoOneofs_Field1); ok {
		return x.Field1
	}
	return 0
}

func (m *TwoOneofs) GetField2() float32 {
	if x, ok := m.GetOne().(*TwoOneofs_Field2); ok {
		return x.Field2
	}
	return 0
}

func (m *TwoOneofs) GetField3() int32 {
	if x, ok := m.GetOne().(*TwoOneofs_Field3); ok {
		return x.Field3
	}
	return 0
}

func (m *TwoOneofs) GetField34() string {
	if x, ok := m.GetTwo().(*TwoOneofs_Field34); ok {
		return x.Field34
	}
	return ""
}

func (m *TwoOneofs) GetField35() []byte {
	if x, ok := m.GetTwo().(*TwoOneofs_Field35); ok {
		return x.Field35
	}
	return nil
}

func (m *TwoOneofs) GetSubMessage2() *Subby {
	if x, ok := m.GetTwo().(*TwoOneofs_SubMessage2); ok {
		return x.SubMessage2
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*TwoOneofs) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*TwoOneofs_Field1)(nil),
		(*TwoOneofs_Field2)(nil),
		(*TwoOneofs_Field3)(nil),
		(*TwoOneofs_Field34)(nil),
		(*TwoOneofs_Field35)(nil),
		(*TwoOneofs_SubMessage2)(nil),
	}
}

type CustomOneof struct {
	// Types that are valid to be assigned to Custom:
	//	*CustomOneof_Stringy
	//	*CustomOneof_CustomType
	//	*CustomOneof_CastType
	//	*CustomOneof_MyCustomName
	Custom               isCustomOneof_Custom `protobuf_oneof:"custom"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *CustomOneof) Reset()      { *m = CustomOneof{} }
func (*CustomOneof) ProtoMessage() {}
func (*CustomOneof) Descriptor() ([]byte, []int) {
	return fileDescriptor_9eef12518f7c4f58, []int{3}
}
func (m *CustomOneof) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *CustomOneof) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CustomOneof.Marshal(b, m, deterministic)
}
func (m *CustomOneof) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CustomOneof.Merge(m, src)
}
func (m *CustomOneof) XXX_Size() int {
	return xxx_messageInfo_CustomOneof.Size(m)
}
func (m *CustomOneof) XXX_DiscardUnknown() {
	xxx_messageInfo_CustomOneof.DiscardUnknown(m)
}

var xxx_messageInfo_CustomOneof proto.InternalMessageInfo

type isCustomOneof_Custom interface {
	isCustomOneof_Custom()
	Equal(interface{}) bool
	VerboseEqual(interface{}) error
	Size() int
	Compare(interface{}) int
}

type CustomOneof_Stringy struct {
	Stringy string `protobuf:"bytes,34,opt,name=Stringy,oneof"`
}
type CustomOneof_CustomType struct {
	CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,oneof,customtype=github.com/gogo/protobuf/test/custom.Uint128"`
}
type CustomOneof_CastType struct {
	CastType github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"varint,36,opt,name=CastType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"`
}
type CustomOneof_MyCustomName struct {
	MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,oneof"`
}

func (*CustomOneof_Stringy) isCustomOneof_Custom()      {}
func (*CustomOneof_CustomType) isCustomOneof_Custom()   {}
func (*CustomOneof_CastType) isCustomOneof_Custom()     {}
func (*CustomOneof_MyCustomName) isCustomOneof_Custom() {}

func (m *CustomOneof) GetCustom() isCustomOneof_Custom {
	if m != nil {
		return m.Custom
	}
	return nil
}

func (m *CustomOneof) GetStringy() string {
	if x, ok := m.GetCustom().(*CustomOneof_Stringy); ok {
		return x.Stringy
	}
	return ""
}

func (m *CustomOneof) GetCastType() github_com_gogo_protobuf_test_casttype.MyUint64Type {
	if x, ok := m.GetCustom().(*CustomOneof_CastType); ok {
		return x.CastType
	}
	return 0
}

func (m *CustomOneof) GetMyCustomName() int64 {
	if x, ok := m.GetCustom().(*CustomOneof_MyCustomName); ok {
		return x.MyCustomName
	}
	return 0
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*CustomOneof) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*CustomOneof_Stringy)(nil),
		(*CustomOneof_CustomType)(nil),
		(*CustomOneof_CastType)(nil),
		(*CustomOneof_MyCustomName)(nil),
	}
}

func init() {
	proto.RegisterType((*Subby)(nil), "one.Subby")
	proto.RegisterType((*AllTypesOneOf)(nil), "one.AllTypesOneOf")
	proto.RegisterType((*TwoOneofs)(nil), "one.TwoOneofs")
	proto.RegisterType((*CustomOneof)(nil), "one.CustomOneof")
}

func init() { proto.RegisterFile("combos/unmarshaler/one.proto", fileDescriptor_9eef12518f7c4f58) }

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

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

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

	that1, ok := that.(*AllTypesOneOf)
	if !ok {
		that2, ok := that.(AllTypesOneOf)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return 1
		}
	} else if this.TestOneof == nil {
		return -1
	} else {
		thisType := -1
		switch this.TestOneof.(type) {
		case *AllTypesOneOf_Field1:
			thisType = 0
		case *AllTypesOneOf_Field2:
			thisType = 1
		case *AllTypesOneOf_Field3:
			thisType = 2
		case *AllTypesOneOf_Field4:
			thisType = 3
		case *AllTypesOneOf_Field5:
			thisType = 4
		case *AllTypesOneOf_Field6:
			thisType = 5
		case *AllTypesOneOf_Field7:
			thisType = 6
		case *AllTypesOneOf_Field8:
			thisType = 7
		case *AllTypesOneOf_Field9:
			thisType = 8
		case *AllTypesOneOf_Field10:
			thisType = 9
		case *AllTypesOneOf_Field11:
			thisType = 10
		case *AllTypesOneOf_Field12:
			thisType = 11
		case *AllTypesOneOf_Field13:
			thisType = 12
		case *AllTypesOneOf_Field14:
			thisType = 13
		case *AllTypesOneOf_Field15:
			thisType = 14
		case *AllTypesOneOf_SubMessage:
			thisType = 15
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", this.TestOneof))
		}
		that1Type := -1
		switch that1.TestOneof.(type) {
		case *AllTypesOneOf_Field1:
			that1Type = 0
		case *AllTypesOneOf_Field2:
			that1Type = 1
		case *AllTypesOneOf_Field3:
			that1Type = 2
		case *AllTypesOneOf_Field4:
			that1Type = 3
		case *AllTypesOneOf_Field5:
			that1Type = 4
		case *AllTypesOneOf_Field6:
			that1Type = 5
		case *AllTypesOneOf_Field7:
			that1Type = 6
		case *AllTypesOneOf_Field8:
			that1Type = 7
		case *AllTypesOneOf_Field9:
			that1Type = 8
		case *AllTypesOneOf_Field10:
			that1Type = 9
		case *AllTypesOneOf_Field11:
			that1Type = 10
		case *AllTypesOneOf_Field12:
			that1Type = 11
		case *AllTypesOneOf_Field13:
			that1Type = 12
		case *AllTypesOneOf_Field14:
			that1Type = 13
		case *AllTypesOneOf_Field15:
			that1Type = 14
		case *AllTypesOneOf_SubMessage:
			that1Type = 15
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", that1.TestOneof))
		}
		if thisType == that1Type {
			if c := this.TestOneof.Compare(that1.TestOneof); c != 0 {
				return c
			}
		} else if thisType < that1Type {
			return -1
		} else if thisType > that1Type {
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *AllTypesOneOf_Field1) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

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

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

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

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

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

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

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

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

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

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

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

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

	that1, ok := that.(*AllTypesOneOf_Field13)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if this.Field13 != that1.Field13 {
		if !this.Field13 {
			return -1
		}
		return 1
	}
	return 0
}
func (this *AllTypesOneOf_Field14) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

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

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

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

	that1, ok := that.(*TwoOneofs)
	if !ok {
		that2, ok := that.(TwoOneofs)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.One == nil {
		if this.One != nil {
			return 1
		}
	} else if this.One == nil {
		return -1
	} else {
		thisType := -1
		switch this.One.(type) {
		case *TwoOneofs_Field1:
			thisType = 0
		case *TwoOneofs_Field2:
			thisType = 1
		case *TwoOneofs_Field3:
			thisType = 2
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", this.One))
		}
		that1Type := -1
		switch that1.One.(type) {
		case *TwoOneofs_Field1:
			that1Type = 0
		case *TwoOneofs_Field2:
			that1Type = 1
		case *TwoOneofs_Field3:
			that1Type = 2
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", that1.One))
		}
		if thisType == that1Type {
			if c := this.One.Compare(that1.One); c != 0 {
				return c
			}
		} else if thisType < that1Type {
			return -1
		} else if thisType > that1Type {
			return 1
		}
	}
	if that1.Two == nil {
		if this.Two != nil {
			return 1
		}
	} else if this.Two == nil {
		return -1
	} else {
		thisType := -1
		switch this.Two.(type) {
		case *TwoOneofs_Field34:
			thisType = 3
		case *TwoOneofs_Field35:
			thisType = 4
		case *TwoOneofs_SubMessage2:
			thisType = 5
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", this.Two))
		}
		that1Type := -1
		switch that1.Two.(type) {
		case *TwoOneofs_Field34:
			that1Type = 3
		case *TwoOneofs_Field35:
			that1Type = 4
		case *TwoOneofs_SubMessage2:
			that1Type = 5
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", that1.Two))
		}
		if thisType == that1Type {
			if c := this.Two.Compare(that1.Two); c != 0 {
				return c
			}
		} else if thisType < that1Type {
			return -1
		} else if thisType > that1Type {
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *TwoOneofs_Field1) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

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

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

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

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

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

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

	that1, ok := that.(*CustomOneof)
	if !ok {
		that2, ok := that.(CustomOneof)
		if ok {
			that1 = &that2
		} else {
			return 1
		}
	}
	if that1 == nil {
		if this == nil {
			return 0
		}
		return 1
	} else if this == nil {
		return -1
	}
	if that1.Custom == nil {
		if this.Custom != nil {
			return 1
		}
	} else if this.Custom == nil {
		return -1
	} else {
		thisType := -1
		switch this.Custom.(type) {
		case *CustomOneof_Stringy:
			thisType = 0
		case *CustomOneof_CustomType:
			thisType = 1
		case *CustomOneof_CastType:
			thisType = 2
		case *CustomOneof_MyCustomName:
			thisType = 3
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", this.Custom))
		}
		that1Type := -1
		switch that1.Custom.(type) {
		case *CustomOneof_Stringy:
			that1Type = 0
		case *CustomOneof_CustomType:
			that1Type = 1
		case *CustomOneof_CastType:
			that1Type = 2
		case *CustomOneof_MyCustomName:
			that1Type = 3
		default:
			panic(fmt.Sprintf("compare: unexpected type %T in oneof", that1.Custom))
		}
		if thisType == that1Type {
			if c := this.Custom.Compare(that1.Custom); c != 0 {
				return c
			}
		} else if thisType < that1Type {
			return -1
		} else if thisType > that1Type {
			return 1
		}
	}
	if c := bytes.Compare(this.XXX_unrecognized, that1.XXX_unrecognized); c != 0 {
		return c
	}
	return 0
}
func (this *CustomOneof_Stringy) Compare(that interface{}) int {
	if that == nil {
		if this == nil {
			return 0
		}
		return 1
	}

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

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

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

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

	that1, ok := that.(*Subby)
	if !ok {
		that2, ok := that.(Subby)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *Subby")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *Subby but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *Subby but is not nil && this == nil")
	}
	if this.Sub != nil && that1.Sub != nil {
		if *this.Sub != *that1.Sub {
			return fmt.Errorf("Sub this(%v) Not Equal that(%v)", *this.Sub, *that1.Sub)
		}
	} else if this.Sub != nil {
		return fmt.Errorf("this.Sub == nil && that.Sub != nil")
	} else if that1.Sub != nil {
		return fmt.Errorf("Sub this(%v) Not Equal that(%v)", this.Sub, that1.Sub)
	}
	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 *Subby) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

	that1, ok := that.(*AllTypesOneOf)
	if !ok {
		that2, ok := that.(AllTypesOneOf)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *AllTypesOneOf")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *AllTypesOneOf but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *AllTypesOneOf but is not nil && this == nil")
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return fmt.Errorf("this.TestOneof != nil && that1.TestOneof == nil")
		}
	} else if this.TestOneof == nil {
		return fmt.Errorf("this.TestOneof == nil && that1.TestOneof != nil")
	} else if err := this.TestOneof.VerboseEqual(that1.TestOneof); err != nil {
		return err
	}
	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 *AllTypesOneOf_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	that1, ok := that.(*AllTypesOneOf)
	if !ok {
		that2, ok := that.(AllTypesOneOf)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.TestOneof == nil {
		if this.TestOneof != nil {
			return false
		}
	} else if this.TestOneof == nil {
		return false
	} else if !this.TestOneof.Equal(that1.TestOneof) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field1) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field1)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field1)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field2) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field2)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field2)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field3) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field3)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field3)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field4) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field4)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field4)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field4 != that1.Field4 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field5) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field5)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field5)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field5 != that1.Field5 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field6) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field6)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field6)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field6 != that1.Field6 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field7) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field7)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field7)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field7 != that1.Field7 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field8) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field8)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field8)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field8 != that1.Field8 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field9) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field9)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field9)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field9 != that1.Field9 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field10) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field10)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field10)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field10 != that1.Field10 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field11) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field11)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field11)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field11 != that1.Field11 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field12) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field12)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field12)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field12 != that1.Field12 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field13) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field13)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field13)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field13 != that1.Field13 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field14) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field14)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field14)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field14 != that1.Field14 {
		return false
	}
	return true
}
func (this *AllTypesOneOf_Field15) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*AllTypesOneOf_Field15)
	if !ok {
		that2, ok := that.(AllTypesOneOf_Field15)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Field15, that1.Field15) {
		return false
	}
	return true
}
func (this *AllTypesOneOf_SubMessage) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

	that1, ok := that.(*TwoOneofs)
	if !ok {
		that2, ok := that.(TwoOneofs)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *TwoOneofs")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *TwoOneofs but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *TwoOneofs but is not nil && this == nil")
	}
	if that1.One == nil {
		if this.One != nil {
			return fmt.Errorf("this.One != nil && that1.One == nil")
		}
	} else if this.One == nil {
		return fmt.Errorf("this.One == nil && that1.One != nil")
	} else if err := this.One.VerboseEqual(that1.One); err != nil {
		return err
	}
	if that1.Two == nil {
		if this.Two != nil {
			return fmt.Errorf("this.Two != nil && that1.Two == nil")
		}
	} else if this.Two == nil {
		return fmt.Errorf("this.Two == nil && that1.Two != nil")
	} else if err := this.Two.VerboseEqual(that1.Two); err != nil {
		return err
	}
	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 *TwoOneofs_Field1) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

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

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

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

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

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

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

	that1, ok := that.(*TwoOneofs)
	if !ok {
		that2, ok := that.(TwoOneofs)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.One == nil {
		if this.One != nil {
			return false
		}
	} else if this.One == nil {
		return false
	} else if !this.One.Equal(that1.One) {
		return false
	}
	if that1.Two == nil {
		if this.Two != nil {
			return false
		}
	} else if this.Two == nil {
		return false
	} else if !this.Two.Equal(that1.Two) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *TwoOneofs_Field1) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TwoOneofs_Field1)
	if !ok {
		that2, ok := that.(TwoOneofs_Field1)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field1 != that1.Field1 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field2) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TwoOneofs_Field2)
	if !ok {
		that2, ok := that.(TwoOneofs_Field2)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field2 != that1.Field2 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field3) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TwoOneofs_Field3)
	if !ok {
		that2, ok := that.(TwoOneofs_Field3)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field3 != that1.Field3 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field34) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TwoOneofs_Field34)
	if !ok {
		that2, ok := that.(TwoOneofs_Field34)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Field34 != that1.Field34 {
		return false
	}
	return true
}
func (this *TwoOneofs_Field35) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*TwoOneofs_Field35)
	if !ok {
		that2, ok := that.(TwoOneofs_Field35)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !bytes.Equal(this.Field35, that1.Field35) {
		return false
	}
	return true
}
func (this *TwoOneofs_SubMessage2) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

	that1, ok := that.(*CustomOneof)
	if !ok {
		that2, ok := that.(CustomOneof)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *CustomOneof")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *CustomOneof but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *CustomOneof but is not nil && this == nil")
	}
	if that1.Custom == nil {
		if this.Custom != nil {
			return fmt.Errorf("this.Custom != nil && that1.Custom == nil")
		}
	} else if this.Custom == nil {
		return fmt.Errorf("this.Custom == nil && that1.Custom != nil")
	} else if err := this.Custom.VerboseEqual(that1.Custom); err != nil {
		return err
	}
	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 *CustomOneof_Stringy) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

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

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

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

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

	that1, ok := that.(*CustomOneof)
	if !ok {
		that2, ok := that.(CustomOneof)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.Custom == nil {
		if this.Custom != nil {
			return false
		}
	} else if this.Custom == nil {
		return false
	} else if !this.Custom.Equal(that1.Custom) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *CustomOneof_Stringy) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomOneof_Stringy)
	if !ok {
		that2, ok := that.(CustomOneof_Stringy)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Stringy != that1.Stringy {
		return false
	}
	return true
}
func (this *CustomOneof_CustomType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomOneof_CustomType)
	if !ok {
		that2, ok := that.(CustomOneof_CustomType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.CustomType.Equal(that1.CustomType) {
		return false
	}
	return true
}
func (this *CustomOneof_CastType) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomOneof_CastType)
	if !ok {
		that2, ok := that.(CustomOneof_CastType)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.CastType != that1.CastType {
		return false
	}
	return true
}
func (this *CustomOneof_MyCustomName) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*CustomOneof_MyCustomName)
	if !ok {
		that2, ok := that.(CustomOneof_MyCustomName)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.MyCustomName != that1.MyCustomName {
		return false
	}
	return true
}
func (this *Subby) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&one.Subby{")
	if this.Sub != nil {
		s = append(s, "Sub: "+valueToGoStringOne(this.Sub, "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 *AllTypesOneOf) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 20)
	s = append(s, "&one.AllTypesOneOf{")
	if this.TestOneof != nil {
		s = append(s, "TestOneof: "+fmt.Sprintf("%#v", this.TestOneof)+",\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 *AllTypesOneOf_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field4) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field4{` +
		`Field4:` + fmt.Sprintf("%#v", this.Field4) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field5) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field5{` +
		`Field5:` + fmt.Sprintf("%#v", this.Field5) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field6) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field6{` +
		`Field6:` + fmt.Sprintf("%#v", this.Field6) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field7) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field7{` +
		`Field7:` + fmt.Sprintf("%#v", this.Field7) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field8) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field8{` +
		`Field8:` + fmt.Sprintf("%#v", this.Field8) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field9) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field9{` +
		`Field9:` + fmt.Sprintf("%#v", this.Field9) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field10) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field10{` +
		`Field10:` + fmt.Sprintf("%#v", this.Field10) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field11) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field11{` +
		`Field11:` + fmt.Sprintf("%#v", this.Field11) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field12) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field12{` +
		`Field12:` + fmt.Sprintf("%#v", this.Field12) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field13) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field13{` +
		`Field13:` + fmt.Sprintf("%#v", this.Field13) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field14) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field14{` +
		`Field14:` + fmt.Sprintf("%#v", this.Field14) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_Field15) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_Field15{` +
		`Field15:` + fmt.Sprintf("%#v", this.Field15) + `}`}, ", ")
	return s
}
func (this *AllTypesOneOf_SubMessage) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.AllTypesOneOf_SubMessage{` +
		`SubMessage:` + fmt.Sprintf("%#v", this.SubMessage) + `}`}, ", ")
	return s
}
func (this *TwoOneofs) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 10)
	s = append(s, "&one.TwoOneofs{")
	if this.One != nil {
		s = append(s, "One: "+fmt.Sprintf("%#v", this.One)+",\n")
	}
	if this.Two != nil {
		s = append(s, "Two: "+fmt.Sprintf("%#v", this.Two)+",\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 *TwoOneofs_Field1) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field1{` +
		`Field1:` + fmt.Sprintf("%#v", this.Field1) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field2{` +
		`Field2:` + fmt.Sprintf("%#v", this.Field2) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field3) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field3{` +
		`Field3:` + fmt.Sprintf("%#v", this.Field3) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field34) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field34{` +
		`Field34:` + fmt.Sprintf("%#v", this.Field34) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_Field35) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_Field35{` +
		`Field35:` + fmt.Sprintf("%#v", this.Field35) + `}`}, ", ")
	return s
}
func (this *TwoOneofs_SubMessage2) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.TwoOneofs_SubMessage2{` +
		`SubMessage2:` + fmt.Sprintf("%#v", this.SubMessage2) + `}`}, ", ")
	return s
}
func (this *CustomOneof) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 8)
	s = append(s, "&one.CustomOneof{")
	if this.Custom != nil {
		s = append(s, "Custom: "+fmt.Sprintf("%#v", this.Custom)+",\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 *CustomOneof_Stringy) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_Stringy{` +
		`Stringy:` + fmt.Sprintf("%#v", this.Stringy) + `}`}, ", ")
	return s
}
func (this *CustomOneof_CustomType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_CustomType{` +
		`CustomType:` + fmt.Sprintf("%#v", this.CustomType) + `}`}, ", ")
	return s
}
func (this *CustomOneof_CastType) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_CastType{` +
		`CastType:` + fmt.Sprintf("%#v", this.CastType) + `}`}, ", ")
	return s
}
func (this *CustomOneof_MyCustomName) GoString() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&one.CustomOneof_MyCustomName{` +
		`MyCustomName:` + fmt.Sprintf("%#v", this.MyCustomName) + `}`}, ", ")
	return s
}
func valueToGoStringOne(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 NewPopulatedSubby(r randyOne, easy bool) *Subby {
	this := &Subby{}
	if r.Intn(5) != 0 {
		v1 := string(randStringOne(r))
		this.Sub = &v1
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 2)
	}
	return this
}

func NewPopulatedAllTypesOneOf(r randyOne, easy bool) *AllTypesOneOf {
	this := &AllTypesOneOf{}
	oneofNumber_TestOneof := []int32{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}[r.Intn(16)]
	switch oneofNumber_TestOneof {
	case 1:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field1(r, easy)
	case 2:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field2(r, easy)
	case 3:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field3(r, easy)
	case 4:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field4(r, easy)
	case 5:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field5(r, easy)
	case 6:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field6(r, easy)
	case 7:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field7(r, easy)
	case 8:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field8(r, easy)
	case 9:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field9(r, easy)
	case 10:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field10(r, easy)
	case 11:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field11(r, easy)
	case 12:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field12(r, easy)
	case 13:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field13(r, easy)
	case 14:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field14(r, easy)
	case 15:
		this.TestOneof = NewPopulatedAllTypesOneOf_Field15(r, easy)
	case 16:
		this.TestOneof = NewPopulatedAllTypesOneOf_SubMessage(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 17)
	}
	return this
}

func NewPopulatedAllTypesOneOf_Field1(r randyOne, easy bool) *AllTypesOneOf_Field1 {
	this := &AllTypesOneOf_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field2(r randyOne, easy bool) *AllTypesOneOf_Field2 {
	this := &AllTypesOneOf_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field3(r randyOne, easy bool) *AllTypesOneOf_Field3 {
	this := &AllTypesOneOf_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field4(r randyOne, easy bool) *AllTypesOneOf_Field4 {
	this := &AllTypesOneOf_Field4{}
	this.Field4 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field4 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field5(r randyOne, easy bool) *AllTypesOneOf_Field5 {
	this := &AllTypesOneOf_Field5{}
	this.Field5 = uint32(r.Uint32())
	return this
}
func NewPopulatedAllTypesOneOf_Field6(r randyOne, easy bool) *AllTypesOneOf_Field6 {
	this := &AllTypesOneOf_Field6{}
	this.Field6 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedAllTypesOneOf_Field7(r randyOne, easy bool) *AllTypesOneOf_Field7 {
	this := &AllTypesOneOf_Field7{}
	this.Field7 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field7 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field8(r randyOne, easy bool) *AllTypesOneOf_Field8 {
	this := &AllTypesOneOf_Field8{}
	this.Field8 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field8 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field9(r randyOne, easy bool) *AllTypesOneOf_Field9 {
	this := &AllTypesOneOf_Field9{}
	this.Field9 = uint32(r.Uint32())
	return this
}
func NewPopulatedAllTypesOneOf_Field10(r randyOne, easy bool) *AllTypesOneOf_Field10 {
	this := &AllTypesOneOf_Field10{}
	this.Field10 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field10 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field11(r randyOne, easy bool) *AllTypesOneOf_Field11 {
	this := &AllTypesOneOf_Field11{}
	this.Field11 = uint64(uint64(r.Uint32()))
	return this
}
func NewPopulatedAllTypesOneOf_Field12(r randyOne, easy bool) *AllTypesOneOf_Field12 {
	this := &AllTypesOneOf_Field12{}
	this.Field12 = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.Field12 *= -1
	}
	return this
}
func NewPopulatedAllTypesOneOf_Field13(r randyOne, easy bool) *AllTypesOneOf_Field13 {
	this := &AllTypesOneOf_Field13{}
	this.Field13 = bool(bool(r.Intn(2) == 0))
	return this
}
func NewPopulatedAllTypesOneOf_Field14(r randyOne, easy bool) *AllTypesOneOf_Field14 {
	this := &AllTypesOneOf_Field14{}
	this.Field14 = string(randStringOne(r))
	return this
}
func NewPopulatedAllTypesOneOf_Field15(r randyOne, easy bool) *AllTypesOneOf_Field15 {
	this := &AllTypesOneOf_Field15{}
	v2 := r.Intn(100)
	this.Field15 = make([]byte, v2)
	for i := 0; i < v2; i++ {
		this.Field15[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedAllTypesOneOf_SubMessage(r randyOne, easy bool) *AllTypesOneOf_SubMessage {
	this := &AllTypesOneOf_SubMessage{}
	this.SubMessage = NewPopulatedSubby(r, easy)
	return this
}
func NewPopulatedTwoOneofs(r randyOne, easy bool) *TwoOneofs {
	this := &TwoOneofs{}
	oneofNumber_One := []int32{1, 2, 3}[r.Intn(3)]
	switch oneofNumber_One {
	case 1:
		this.One = NewPopulatedTwoOneofs_Field1(r, easy)
	case 2:
		this.One = NewPopulatedTwoOneofs_Field2(r, easy)
	case 3:
		this.One = NewPopulatedTwoOneofs_Field3(r, easy)
	}
	oneofNumber_Two := []int32{34, 35, 36}[r.Intn(3)]
	switch oneofNumber_Two {
	case 34:
		this.Two = NewPopulatedTwoOneofs_Field34(r, easy)
	case 35:
		this.Two = NewPopulatedTwoOneofs_Field35(r, easy)
	case 36:
		this.Two = NewPopulatedTwoOneofs_SubMessage2(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 37)
	}
	return this
}

func NewPopulatedTwoOneofs_Field1(r randyOne, easy bool) *TwoOneofs_Field1 {
	this := &TwoOneofs_Field1{}
	this.Field1 = float64(r.Float64())
	if r.Intn(2) == 0 {
		this.Field1 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field2(r randyOne, easy bool) *TwoOneofs_Field2 {
	this := &TwoOneofs_Field2{}
	this.Field2 = float32(r.Float32())
	if r.Intn(2) == 0 {
		this.Field2 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field3(r randyOne, easy bool) *TwoOneofs_Field3 {
	this := &TwoOneofs_Field3{}
	this.Field3 = int32(r.Int31())
	if r.Intn(2) == 0 {
		this.Field3 *= -1
	}
	return this
}
func NewPopulatedTwoOneofs_Field34(r randyOne, easy bool) *TwoOneofs_Field34 {
	this := &TwoOneofs_Field34{}
	this.Field34 = string(randStringOne(r))
	return this
}
func NewPopulatedTwoOneofs_Field35(r randyOne, easy bool) *TwoOneofs_Field35 {
	this := &TwoOneofs_Field35{}
	v3 := r.Intn(100)
	this.Field35 = make([]byte, v3)
	for i := 0; i < v3; i++ {
		this.Field35[i] = byte(r.Intn(256))
	}
	return this
}
func NewPopulatedTwoOneofs_SubMessage2(r randyOne, easy bool) *TwoOneofs_SubMessage2 {
	this := &TwoOneofs_SubMessage2{}
	this.SubMessage2 = NewPopulatedSubby(r, easy)
	return this
}
func NewPopulatedCustomOneof(r randyOne, easy bool) *CustomOneof {
	this := &CustomOneof{}
	oneofNumber_Custom := []int32{34, 35, 36, 37}[r.Intn(4)]
	switch oneofNumber_Custom {
	case 34:
		this.Custom = NewPopulatedCustomOneof_Stringy(r, easy)
	case 35:
		this.Custom = NewPopulatedCustomOneof_CustomType(r, easy)
	case 36:
		this.Custom = NewPopulatedCustomOneof_CastType(r, easy)
	case 37:
		this.Custom = NewPopulatedCustomOneof_MyCustomName(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedOne(r, 38)
	}
	return this
}

func NewPopulatedCustomOneof_Stringy(r randyOne, easy bool) *CustomOneof_Stringy {
	this := &CustomOneof_Stringy{}
	this.Stringy = string(randStringOne(r))
	return this
}
func NewPopulatedCustomOneof_CustomType(r randyOne, easy bool) *CustomOneof_CustomType {
	this := &CustomOneof_CustomType{}
	v4 := github_com_gogo_protobuf_test_custom.NewPopulatedUint128(r)
	this.CustomType = *v4
	return this
}
func NewPopulatedCustomOneof_CastType(r randyOne, easy bool) *CustomOneof_CastType {
	this := &CustomOneof_CastType{}
	this.CastType = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
	return this
}
func NewPopulatedCustomOneof_MyCustomName(r randyOne, easy bool) *CustomOneof_MyCustomName {
	this := &CustomOneof_MyCustomName{}
	this.MyCustomName = int64(r.Int63())
	if r.Intn(2) == 0 {
		this.MyCustomName *= -1
	}
	return this
}

type randyOne interface {
	Float32() float32
	Float64() float64
	Int63() int64
	Int31() int32
	Uint32() uint32
	Intn(n int) int
}

func randUTF8RuneOne(r randyOne) 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 randStringOne(r randyOne) string {
	v5 := r.Intn(100)
	tmps := make([]rune, v5)
	for i := 0; i < v5; i++ {
		tmps[i] = randUTF8RuneOne(r)
	}
	return string(tmps)
}
func randUnrecognizedOne(r randyOne, 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 = randFieldOne(dAtA, r, fieldNumber, wire)
	}
	return dAtA
}
func randFieldOne(dAtA []byte, r randyOne, fieldNumber int, wire int) []byte {
	key := uint32(fieldNumber)<<3 | uint32(wire)
	switch wire {
	case 0:
		dAtA = encodeVarintPopulateOne(dAtA, uint64(key))
		v6 := r.Int63()
		if r.Intn(2) == 0 {
			v6 *= -1
		}
		dAtA = encodeVarintPopulateOne(dAtA, uint64(v6))
	case 1:
		dAtA = encodeVarintPopulateOne(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 = encodeVarintPopulateOne(dAtA, uint64(key))
		ll := r.Intn(100)
		dAtA = encodeVarintPopulateOne(dAtA, uint64(ll))
		for j := 0; j < ll; j++ {
			dAtA = append(dAtA, byte(r.Intn(256)))
		}
	default:
		dAtA = encodeVarintPopulateOne(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 encodeVarintPopulateOne(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 *Subby) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Sub != nil {
		l = len(*m.Sub)
		n += 1 + l + sovOne(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AllTypesOneOf) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.TestOneof != nil {
		n += m.TestOneof.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *AllTypesOneOf_Field1) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field2) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field3) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *AllTypesOneOf_Field4) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field4))
	return n
}
func (m *AllTypesOneOf_Field5) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field5))
	return n
}
func (m *AllTypesOneOf_Field6) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field6))
	return n
}
func (m *AllTypesOneOf_Field7) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field7))
	return n
}
func (m *AllTypesOneOf_Field8) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field8))
	return n
}
func (m *AllTypesOneOf_Field9) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field10) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field11) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field12) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field13) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 2
	return n
}
func (m *AllTypesOneOf_Field14) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Field14)
	n += 1 + l + sovOne(uint64(l))
	return n
}
func (m *AllTypesOneOf_Field15) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field15 != nil {
		l = len(m.Field15)
		n += 1 + l + sovOne(uint64(l))
	}
	return n
}
func (m *AllTypesOneOf_SubMessage) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SubMessage != nil {
		l = m.SubMessage.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *TwoOneofs) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.One != nil {
		n += m.One.Size()
	}
	if m.Two != nil {
		n += m.Two.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *TwoOneofs_Field1) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 9
	return n
}
func (m *TwoOneofs_Field2) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 5
	return n
}
func (m *TwoOneofs_Field3) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *TwoOneofs_Field34) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Field34)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *TwoOneofs_Field35) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Field35 != nil {
		l = len(m.Field35)
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *TwoOneofs_SubMessage2) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.SubMessage2 != nil {
		l = m.SubMessage2.Size()
		n += 2 + l + sovOne(uint64(l))
	}
	return n
}
func (m *CustomOneof) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	if m.Custom != nil {
		n += m.Custom.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *CustomOneof_Stringy) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = len(m.Stringy)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CustomType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	l = m.CustomType.Size()
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CastType) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.CastType))
	return n
}
func (m *CustomOneof_MyCustomName) Size() (n int) {
	if m == nil {
		return 0
	}
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.MyCustomName))
	return n
}

func sovOne(x uint64) (n int) {
	return (math_bits.Len64(x|1) + 6) / 7
}
func sozOne(x uint64) (n int) {
	return sovOne(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *Subby) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&Subby{`,
		`Sub:` + valueToStringOne(this.Sub) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf{`,
		`TestOneof:` + fmt.Sprintf("%v", this.TestOneof) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field4) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field4{`,
		`Field4:` + fmt.Sprintf("%v", this.Field4) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field5) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field5{`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field6) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field6{`,
		`Field6:` + fmt.Sprintf("%v", this.Field6) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field7) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field7{`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field8) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field8{`,
		`Field8:` + fmt.Sprintf("%v", this.Field8) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field9) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field9{`,
		`Field9:` + fmt.Sprintf("%v", this.Field9) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field10) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field10{`,
		`Field10:` + fmt.Sprintf("%v", this.Field10) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field11) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field11{`,
		`Field11:` + fmt.Sprintf("%v", this.Field11) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field12) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field12{`,
		`Field12:` + fmt.Sprintf("%v", this.Field12) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field13) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field13{`,
		`Field13:` + fmt.Sprintf("%v", this.Field13) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field14) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field14{`,
		`Field14:` + fmt.Sprintf("%v", this.Field14) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_Field15) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_Field15{`,
		`Field15:` + fmt.Sprintf("%v", this.Field15) + `,`,
		`}`,
	}, "")
	return s
}
func (this *AllTypesOneOf_SubMessage) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&AllTypesOneOf_SubMessage{`,
		`SubMessage:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs{`,
		`One:` + fmt.Sprintf("%v", this.One) + `,`,
		`Two:` + fmt.Sprintf("%v", this.Two) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field1) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field1{`,
		`Field1:` + fmt.Sprintf("%v", this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field2{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field3) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field3{`,
		`Field3:` + fmt.Sprintf("%v", this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field34) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field34{`,
		`Field34:` + fmt.Sprintf("%v", this.Field34) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_Field35) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_Field35{`,
		`Field35:` + fmt.Sprintf("%v", this.Field35) + `,`,
		`}`,
	}, "")
	return s
}
func (this *TwoOneofs_SubMessage2) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&TwoOneofs_SubMessage2{`,
		`SubMessage2:` + strings.Replace(fmt.Sprintf("%v", this.SubMessage2), "Subby", "Subby", 1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof{`,
		`Custom:` + fmt.Sprintf("%v", this.Custom) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_Stringy) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_Stringy{`,
		`Stringy:` + fmt.Sprintf("%v", this.Stringy) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_CustomType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_CustomType{`,
		`CustomType:` + fmt.Sprintf("%v", this.CustomType) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_CastType) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_CastType{`,
		`CastType:` + fmt.Sprintf("%v", this.CastType) + `,`,
		`}`,
	}, "")
	return s
}
func (this *CustomOneof_MyCustomName) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&CustomOneof_MyCustomName{`,
		`MyCustomName:` + fmt.Sprintf("%v", this.MyCustomName) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringOne(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (m *Subby) 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 ErrIntOverflowOne
			}
			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: Subby: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: Subby: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Sub", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				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 ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(dAtA[iNdEx:postIndex])
			m.Sub = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			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 *AllTypesOneOf) 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 ErrIntOverflowOne
			}
			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: AllTypesOneOf: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: AllTypesOneOf: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &AllTypesOneOf_Field1{float64(math.Float64frombits(v))}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &AllTypesOneOf_Field2{float32(math.Float32frombits(v))}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= uint64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				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.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				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.TestOneof = &AllTypesOneOf_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
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &AllTypesOneOf_Field9{v}
		case 10:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field10", wireType)
			}
			var v int32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = int32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.TestOneof = &AllTypesOneOf_Field10{v}
		case 11:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field11", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &AllTypesOneOf_Field11{v}
		case 12:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field12", wireType)
			}
			var v int64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = int64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			b := bool(v != 0)
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				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 ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.TestOneof = &AllTypesOneOf_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 ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := make([]byte, postIndex-iNdEx)
			copy(v, dAtA[iNdEx:postIndex])
			m.TestOneof = &AllTypesOneOf_Field15{v}
			iNdEx = postIndex
		case 16:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SubMessage", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Subby{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.TestOneof = &AllTypesOneOf_SubMessage{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			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 *TwoOneofs) 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 ErrIntOverflowOne
			}
			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: TwoOneofs: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: TwoOneofs: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
			iNdEx += 8
			m.One = &TwoOneofs_Field1{float64(math.Float64frombits(v))}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
			iNdEx += 4
			m.One = &TwoOneofs_Field2{float32(math.Float32frombits(v))}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int32(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.One = &TwoOneofs_Field3{v}
		case 34:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field34", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				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 ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Two = &TwoOneofs_Field34{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 35:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field35", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := make([]byte, postIndex-iNdEx)
			copy(v, dAtA[iNdEx:postIndex])
			m.Two = &TwoOneofs_Field35{v}
			iNdEx = postIndex
		case 36:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SubMessage2", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + msglen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &Subby{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Two = &TwoOneofs_SubMessage2{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			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 *CustomOneof) 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 ErrIntOverflowOne
			}
			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: CustomOneof: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CustomOneof: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 34:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Stringy", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				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 ErrInvalidLengthOne
			}
			postIndex := iNdEx + intStringLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Custom = &CustomOneof_Stringy{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 35:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CustomType", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				byteLen |= int(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOne
			}
			postIndex := iNdEx + byteLen
			if postIndex < 0 {
				return ErrInvalidLengthOne
			}
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			var vv github_com_gogo_protobuf_test_custom.Uint128
			v := &vv
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.Custom = &CustomOneof_CustomType{*v}
			iNdEx = postIndex
		case 36:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field CastType", wireType)
			}
			var v github_com_gogo_protobuf_test_casttype.MyUint64Type
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Custom = &CustomOneof_CastType{v}
		case 37:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field MyCustomName", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOne
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				v |= int64(b&0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Custom = &CustomOneof_MyCustomName{v}
		default:
			iNdEx = preIndex
			skippy, err := skipOne(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOne
			}
			if (iNdEx + skippy) < 0 {
				return ErrInvalidLengthOne
			}
			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 skipOne(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, ErrIntOverflowOne
			}
			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, ErrIntOverflowOne
				}
				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, ErrIntOverflowOne
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if length < 0 {
				return 0, ErrInvalidLengthOne
			}
			iNdEx += length
			if iNdEx < 0 {
				return 0, ErrInvalidLengthOne
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowOne
					}
					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 := skipOne(dAtA[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
				if iNdEx < 0 {
					return 0, ErrInvalidLengthOne
				}
			}
			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 (
	ErrInvalidLengthOne = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowOne   = fmt.Errorf("proto: integer overflow")
)
