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

/*
	Package one is a generated protocol buffer package.

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

	It has these top-level messages:
		Subby
		AllTypesOneOf
		TwoOneofs
		CustomOneof
*/
package one

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

import github_com_gogo_protobuf_test_custom "github.com/gogo/protobuf/test/custom"
import github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"

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

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

import io "io"
import unsafe "unsafe"

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

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

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

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

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

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

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

type AllTypesOneOf_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"`
}
type AllTypesOneOf_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"`
}
type AllTypesOneOf_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"`
}
type AllTypesOneOf_Field4 struct {
	Field4 int64 `protobuf:"varint,4,opt,name=Field4,json=field4,oneof"`
}
type AllTypesOneOf_Field5 struct {
	Field5 uint32 `protobuf:"varint,5,opt,name=Field5,json=field5,oneof"`
}
type AllTypesOneOf_Field6 struct {
	Field6 uint64 `protobuf:"varint,6,opt,name=Field6,json=field6,oneof"`
}
type AllTypesOneOf_Field7 struct {
	Field7 int32 `protobuf:"zigzag32,7,opt,name=Field7,json=field7,oneof"`
}
type AllTypesOneOf_Field8 struct {
	Field8 int64 `protobuf:"zigzag64,8,opt,name=Field8,json=field8,oneof"`
}
type AllTypesOneOf_Field9 struct {
	Field9 uint32 `protobuf:"fixed32,9,opt,name=Field9,json=field9,oneof"`
}
type AllTypesOneOf_Field10 struct {
	Field10 int32 `protobuf:"fixed32,10,opt,name=Field10,json=field10,oneof"`
}
type AllTypesOneOf_Field11 struct {
	Field11 uint64 `protobuf:"fixed64,11,opt,name=Field11,json=field11,oneof"`
}
type AllTypesOneOf_Field12 struct {
	Field12 int64 `protobuf:"fixed64,12,opt,name=Field12,json=field12,oneof"`
}
type AllTypesOneOf_Field13 struct {
	Field13 bool `protobuf:"varint,13,opt,name=Field13,json=field13,oneof"`
}
type AllTypesOneOf_Field14 struct {
	Field14 string `protobuf:"bytes,14,opt,name=Field14,json=field14,oneof"`
}
type AllTypesOneOf_Field15 struct {
	Field15 []byte `protobuf:"bytes,15,opt,name=Field15,json=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_OneofFuncs is for the internal use of the proto package.
func (*AllTypesOneOf) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _AllTypesOneOf_OneofMarshaler, _AllTypesOneOf_OneofUnmarshaler, _AllTypesOneOf_OneofSizer, []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),
	}
}

func _AllTypesOneOf_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*AllTypesOneOf)
	// test_oneof
	switch x := m.TestOneof.(type) {
	case *AllTypesOneOf_Field1:
		_ = b.EncodeVarint(1<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.Field1))
	case *AllTypesOneOf_Field2:
		_ = b.EncodeVarint(2<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2)))
	case *AllTypesOneOf_Field3:
		_ = b.EncodeVarint(3<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field3))
	case *AllTypesOneOf_Field4:
		_ = b.EncodeVarint(4<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field4))
	case *AllTypesOneOf_Field5:
		_ = b.EncodeVarint(5<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field5))
	case *AllTypesOneOf_Field6:
		_ = b.EncodeVarint(6<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field6))
	case *AllTypesOneOf_Field7:
		_ = b.EncodeVarint(7<<3 | proto.WireVarint)
		_ = b.EncodeZigzag32(uint64(x.Field7))
	case *AllTypesOneOf_Field8:
		_ = b.EncodeVarint(8<<3 | proto.WireVarint)
		_ = b.EncodeZigzag64(uint64(x.Field8))
	case *AllTypesOneOf_Field9:
		_ = b.EncodeVarint(9<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field9))
	case *AllTypesOneOf_Field10:
		_ = b.EncodeVarint(10<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(x.Field10))
	case *AllTypesOneOf_Field11:
		_ = b.EncodeVarint(11<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field11))
	case *AllTypesOneOf_Field12:
		_ = b.EncodeVarint(12<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(uint64(x.Field12))
	case *AllTypesOneOf_Field13:
		t := uint64(0)
		if x.Field13 {
			t = 1
		}
		_ = b.EncodeVarint(13<<3 | proto.WireVarint)
		_ = b.EncodeVarint(t)
	case *AllTypesOneOf_Field14:
		_ = b.EncodeVarint(14<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Field14)
	case *AllTypesOneOf_Field15:
		_ = b.EncodeVarint(15<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Field15)
	case *AllTypesOneOf_SubMessage:
		_ = b.EncodeVarint(16<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SubMessage); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("AllTypesOneOf.TestOneof has unexpected type %T", x)
	}
	return nil
}

func _AllTypesOneOf_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*AllTypesOneOf)
	switch tag {
	case 1: // test_oneof.Field1
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field1{math.Float64frombits(x)}
		return true, err
	case 2: // test_oneof.Field2
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field2{math.Float32frombits(uint32(x))}
		return true, err
	case 3: // test_oneof.Field3
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field3{int32(x)}
		return true, err
	case 4: // test_oneof.Field4
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field4{int64(x)}
		return true, err
	case 5: // test_oneof.Field5
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field5{uint32(x)}
		return true, err
	case 6: // test_oneof.Field6
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field6{x}
		return true, err
	case 7: // test_oneof.Field7
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag32()
		m.TestOneof = &AllTypesOneOf_Field7{int32(x)}
		return true, err
	case 8: // test_oneof.Field8
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeZigzag64()
		m.TestOneof = &AllTypesOneOf_Field8{int64(x)}
		return true, err
	case 9: // test_oneof.Field9
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field9{uint32(x)}
		return true, err
	case 10: // test_oneof.Field10
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.TestOneof = &AllTypesOneOf_Field10{int32(x)}
		return true, err
	case 11: // test_oneof.Field11
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field11{x}
		return true, err
	case 12: // test_oneof.Field12
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.TestOneof = &AllTypesOneOf_Field12{int64(x)}
		return true, err
	case 13: // test_oneof.Field13
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.TestOneof = &AllTypesOneOf_Field13{x != 0}
		return true, err
	case 14: // test_oneof.Field14
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.TestOneof = &AllTypesOneOf_Field14{x}
		return true, err
	case 15: // test_oneof.Field15
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.TestOneof = &AllTypesOneOf_Field15{x}
		return true, err
	case 16: // test_oneof.sub_message
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Subby)
		err := b.DecodeMessage(msg)
		m.TestOneof = &AllTypesOneOf_SubMessage{msg}
		return true, err
	default:
		return false, nil
	}
}

func _AllTypesOneOf_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*AllTypesOneOf)
	// test_oneof
	switch x := m.TestOneof.(type) {
	case *AllTypesOneOf_Field1:
		n += proto.SizeVarint(1<<3 | proto.WireFixed64)
		n += 8
	case *AllTypesOneOf_Field2:
		n += proto.SizeVarint(2<<3 | proto.WireFixed32)
		n += 4
	case *AllTypesOneOf_Field3:
		n += proto.SizeVarint(3<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field3))
	case *AllTypesOneOf_Field4:
		n += proto.SizeVarint(4<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field4))
	case *AllTypesOneOf_Field5:
		n += proto.SizeVarint(5<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field5))
	case *AllTypesOneOf_Field6:
		n += proto.SizeVarint(6<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field6))
	case *AllTypesOneOf_Field7:
		n += proto.SizeVarint(7<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64((uint32(x.Field7) << 1) ^ uint32((int32(x.Field7) >> 31))))
	case *AllTypesOneOf_Field8:
		n += proto.SizeVarint(8<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(uint64(x.Field8<<1) ^ uint64((int64(x.Field8) >> 63))))
	case *AllTypesOneOf_Field9:
		n += proto.SizeVarint(9<<3 | proto.WireFixed32)
		n += 4
	case *AllTypesOneOf_Field10:
		n += proto.SizeVarint(10<<3 | proto.WireFixed32)
		n += 4
	case *AllTypesOneOf_Field11:
		n += proto.SizeVarint(11<<3 | proto.WireFixed64)
		n += 8
	case *AllTypesOneOf_Field12:
		n += proto.SizeVarint(12<<3 | proto.WireFixed64)
		n += 8
	case *AllTypesOneOf_Field13:
		n += proto.SizeVarint(13<<3 | proto.WireVarint)
		n += 1
	case *AllTypesOneOf_Field14:
		n += proto.SizeVarint(14<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field14)))
		n += len(x.Field14)
	case *AllTypesOneOf_Field15:
		n += proto.SizeVarint(15<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field15)))
		n += len(x.Field15)
	case *AllTypesOneOf_SubMessage:
		s := proto.Size(x.SubMessage)
		n += proto.SizeVarint(16<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

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

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

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

type TwoOneofs_Field1 struct {
	Field1 float64 `protobuf:"fixed64,1,opt,name=Field1,json=field1,oneof"`
}
type TwoOneofs_Field2 struct {
	Field2 float32 `protobuf:"fixed32,2,opt,name=Field2,json=field2,oneof"`
}
type TwoOneofs_Field3 struct {
	Field3 int32 `protobuf:"varint,3,opt,name=Field3,json=field3,oneof"`
}
type TwoOneofs_Field34 struct {
	Field34 string `protobuf:"bytes,34,opt,name=Field34,json=field34,oneof"`
}
type TwoOneofs_Field35 struct {
	Field35 []byte `protobuf:"bytes,35,opt,name=Field35,json=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_OneofFuncs is for the internal use of the proto package.
func (*TwoOneofs) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _TwoOneofs_OneofMarshaler, _TwoOneofs_OneofUnmarshaler, _TwoOneofs_OneofSizer, []interface{}{
		(*TwoOneofs_Field1)(nil),
		(*TwoOneofs_Field2)(nil),
		(*TwoOneofs_Field3)(nil),
		(*TwoOneofs_Field34)(nil),
		(*TwoOneofs_Field35)(nil),
		(*TwoOneofs_SubMessage2)(nil),
	}
}

func _TwoOneofs_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*TwoOneofs)
	// one
	switch x := m.One.(type) {
	case *TwoOneofs_Field1:
		_ = b.EncodeVarint(1<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.Field1))
	case *TwoOneofs_Field2:
		_ = b.EncodeVarint(2<<3 | proto.WireFixed32)
		_ = b.EncodeFixed32(uint64(math.Float32bits(x.Field2)))
	case *TwoOneofs_Field3:
		_ = b.EncodeVarint(3<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Field3))
	case nil:
	default:
		return fmt.Errorf("TwoOneofs.One has unexpected type %T", x)
	}
	// two
	switch x := m.Two.(type) {
	case *TwoOneofs_Field34:
		_ = b.EncodeVarint(34<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Field34)
	case *TwoOneofs_Field35:
		_ = b.EncodeVarint(35<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Field35)
	case *TwoOneofs_SubMessage2:
		_ = b.EncodeVarint(36<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SubMessage2); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("TwoOneofs.Two has unexpected type %T", x)
	}
	return nil
}

func _TwoOneofs_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*TwoOneofs)
	switch tag {
	case 1: // one.Field1
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.One = &TwoOneofs_Field1{math.Float64frombits(x)}
		return true, err
	case 2: // one.Field2
		if wire != proto.WireFixed32 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed32()
		m.One = &TwoOneofs_Field2{math.Float32frombits(uint32(x))}
		return true, err
	case 3: // one.Field3
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.One = &TwoOneofs_Field3{int32(x)}
		return true, err
	case 34: // two.Field34
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Two = &TwoOneofs_Field34{x}
		return true, err
	case 35: // two.Field35
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.Two = &TwoOneofs_Field35{x}
		return true, err
	case 36: // two.sub_message2
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Subby)
		err := b.DecodeMessage(msg)
		m.Two = &TwoOneofs_SubMessage2{msg}
		return true, err
	default:
		return false, nil
	}
}

func _TwoOneofs_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*TwoOneofs)
	// one
	switch x := m.One.(type) {
	case *TwoOneofs_Field1:
		n += proto.SizeVarint(1<<3 | proto.WireFixed64)
		n += 8
	case *TwoOneofs_Field2:
		n += proto.SizeVarint(2<<3 | proto.WireFixed32)
		n += 4
	case *TwoOneofs_Field3:
		n += proto.SizeVarint(3<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.Field3))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	// two
	switch x := m.Two.(type) {
	case *TwoOneofs_Field34:
		n += proto.SizeVarint(34<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field34)))
		n += len(x.Field34)
	case *TwoOneofs_Field35:
		n += proto.SizeVarint(35<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Field35)))
		n += len(x.Field35)
	case *TwoOneofs_SubMessage2:
		s := proto.Size(x.SubMessage2)
		n += proto.SizeVarint(36<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

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

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

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

type CustomOneof_Stringy struct {
	Stringy string `protobuf:"bytes,34,opt,name=Stringy,json=stringy,oneof"`
}
type CustomOneof_CustomType struct {
	CustomType github_com_gogo_protobuf_test_custom.Uint128 `protobuf:"bytes,35,opt,name=CustomType,json=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,json=castType,oneof,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type"`
}
type CustomOneof_MyCustomName struct {
	MyCustomName int64 `protobuf:"varint,37,opt,name=CustomName,json=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_OneofFuncs is for the internal use of the proto package.
func (*CustomOneof) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _CustomOneof_OneofMarshaler, _CustomOneof_OneofUnmarshaler, _CustomOneof_OneofSizer, []interface{}{
		(*CustomOneof_Stringy)(nil),
		(*CustomOneof_CustomType)(nil),
		(*CustomOneof_CastType)(nil),
		(*CustomOneof_MyCustomName)(nil),
	}
}

func _CustomOneof_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*CustomOneof)
	// custom
	switch x := m.Custom.(type) {
	case *CustomOneof_Stringy:
		_ = b.EncodeVarint(34<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Stringy)
	case *CustomOneof_CustomType:
		_ = b.EncodeVarint(35<<3 | proto.WireBytes)
		data, err := x.CustomType.Marshal()
		if err != nil {
			return err
		}
		_ = b.EncodeRawBytes(data)
	case *CustomOneof_CastType:
		_ = b.EncodeVarint(36<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.CastType))
	case *CustomOneof_MyCustomName:
		_ = b.EncodeVarint(37<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.MyCustomName))
	case nil:
	default:
		return fmt.Errorf("CustomOneof.Custom has unexpected type %T", x)
	}
	return nil
}

func _CustomOneof_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*CustomOneof)
	switch tag {
	case 34: // custom.Stringy
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Custom = &CustomOneof_Stringy{x}
		return true, err
	case 35: // custom.CustomType
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		if err != nil {
			return true, err
		}
		var cc github_com_gogo_protobuf_test_custom.Uint128
		c := &cc
		err = c.Unmarshal(x)
		m.Custom = &CustomOneof_CustomType{*c}
		return true, err
	case 36: // custom.CastType
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Custom = &CustomOneof_CastType{github_com_gogo_protobuf_test_casttype.MyUint64Type(x)}
		return true, err
	case 37: // custom.CustomName
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Custom = &CustomOneof_MyCustomName{int64(x)}
		return true, err
	default:
		return false, nil
	}
}

func _CustomOneof_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*CustomOneof)
	// custom
	switch x := m.Custom.(type) {
	case *CustomOneof_Stringy:
		n += proto.SizeVarint(34<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(len(x.Stringy)))
		n += len(x.Stringy)
	case *CustomOneof_CustomType:
		n += proto.SizeVarint(35<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(x.CustomType.Size()))
		n += x.CustomType.Size()
	case *CustomOneof_CastType:
		n += proto.SizeVarint(36<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.CastType))
	case *CustomOneof_MyCustomName:
		n += proto.SizeVarint(37<<3 | proto.WireVarint)
		n += proto.SizeVarint(uint64(x.MyCustomName))
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	that1, ok := that.(*CustomOneof_MyCustomName)
	if !ok {
		that2, ok := that.(CustomOneof_MyCustomName)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.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 extensionToGoStringOne(m github_com_gogo_protobuf_proto.Message) string {
	e := github_com_gogo_protobuf_proto.GetUnsafeExtensionsMap(m)
	if e == nil {
		return "nil"
	}
	s := "proto.NewUnsafeXXX_InternalExtensions(map[int32]proto.Extension{"
	keys := make([]int, 0, len(e))
	for k := range e {
		keys = append(keys, int(k))
	}
	sort.Ints(keys)
	ss := []string{}
	for _, k := range keys {
		ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString())
	}
	s += strings.Join(ss, ",") + "})"
	return s
}
func NewPopulatedSubby(r randyOne, easy bool) *Subby {
	this := &Subby{}
	if r.Intn(10) != 0 {
		v1 := 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 = 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 = 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 = 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) {
	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) {
	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) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field2) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field3) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *AllTypesOneOf_Field4) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field4))
	return n
}
func (m *AllTypesOneOf_Field5) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field5))
	return n
}
func (m *AllTypesOneOf_Field6) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field6))
	return n
}
func (m *AllTypesOneOf_Field7) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field7))
	return n
}
func (m *AllTypesOneOf_Field8) Size() (n int) {
	var l int
	_ = l
	n += 1 + sozOne(uint64(m.Field8))
	return n
}
func (m *AllTypesOneOf_Field9) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field10) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *AllTypesOneOf_Field11) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field12) Size() (n int) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *AllTypesOneOf_Field13) Size() (n int) {
	var l int
	_ = l
	n += 2
	return n
}
func (m *AllTypesOneOf_Field14) Size() (n int) {
	var l int
	_ = l
	l = len(m.Field14)
	n += 1 + l + sovOne(uint64(l))
	return n
}
func (m *AllTypesOneOf_Field15) Size() (n int) {
	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) {
	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) {
	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) {
	var l int
	_ = l
	n += 9
	return n
}
func (m *TwoOneofs_Field2) Size() (n int) {
	var l int
	_ = l
	n += 5
	return n
}
func (m *TwoOneofs_Field3) Size() (n int) {
	var l int
	_ = l
	n += 1 + sovOne(uint64(m.Field3))
	return n
}
func (m *TwoOneofs_Field34) Size() (n int) {
	var l int
	_ = l
	l = len(m.Field34)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *TwoOneofs_Field35) Size() (n int) {
	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) {
	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) {
	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) {
	var l int
	_ = l
	l = len(m.Stringy)
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CustomType) Size() (n int) {
	var l int
	_ = l
	l = m.CustomType.Size()
	n += 2 + l + sovOne(uint64(l))
	return n
}
func (m *CustomOneof_CastType) Size() (n int) {
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.CastType))
	return n
}
func (m *CustomOneof_MyCustomName) Size() (n int) {
	var l int
	_ = l
	n += 2 + sovOne(uint64(m.MyCustomName))
	return n
}

func sovOne(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
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 ErrIntOverflowOneUnsafe
			}
			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 ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Sub = &s
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipOneUnsafe(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			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 ErrIntOverflowOneUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&data[iNdEx]))
			iNdEx += 8
			m.TestOneof = &AllTypesOneOf_Field1{v}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&data[iNdEx]))
			iNdEx += 4
			m.TestOneof = &AllTypesOneOf_Field2{v}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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)(unsafe.Pointer(&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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipOneUnsafe(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			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 ErrIntOverflowOneUnsafe
			}
			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 float64
			if iNdEx+8 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float64)(unsafe.Pointer(&data[iNdEx]))
			iNdEx += 8
			m.One = &TwoOneofs_Field1{v}
		case 2:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v float32
			if iNdEx+4 > l {
				return io.ErrUnexpectedEOF
			}
			v = *(*float32)(unsafe.Pointer(&data[iNdEx]))
			iNdEx += 4
			m.One = &TwoOneofs_Field2{v}
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v int32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + msglen
			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 := skipOneUnsafe(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			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 ErrIntOverflowOneUnsafe
			}
			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 ErrIntOverflowOneUnsafe
				}
				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 ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + intStringLen
			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 ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			postIndex := iNdEx + byteLen
			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 ErrIntOverflowOneUnsafe
				}
				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 ErrIntOverflowOneUnsafe
				}
				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 := skipOneUnsafe(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthOneUnsafe
			}
			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 skipOneUnsafe(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, ErrIntOverflowOneUnsafe
			}
			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, ErrIntOverflowOneUnsafe
				}
				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, ErrIntOverflowOneUnsafe
				}
				if iNdEx >= l {
					return 0, io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				length |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			iNdEx += length
			if length < 0 {
				return 0, ErrInvalidLengthOneUnsafe
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowOneUnsafe
					}
					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 := skipOneUnsafe(data[start:])
				if err != nil {
					return 0, err
				}
				iNdEx = start + next
			}
			return iNdEx, nil
		case 4:
			return iNdEx, nil
		case 5:
			iNdEx += 4
			return iNdEx, nil
		default:
			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
		}
	}
	panic("unreachable")
}

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

func init() { proto.RegisterFile("combos/unsafeunmarshaler/one.proto", fileDescriptorOne) }

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