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

/*
	Package unrecognized is a generated protocol buffer package.

	It is generated from these files:
		unrecognized.proto

	It has these top-level messages:
		A
		B
		D
		C
		U
		UnoM
		OldA
		OldB
		OldC
		OldU
		OldUnoM
*/
package unrecognized

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

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"

// 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.
const _ = proto.GoGoProtoPackageIsVersion1

type A struct {
	Field1 *int64 `protobuf:"varint,2,opt,name=Field1,json=field1" json:"Field1,omitempty"`
	B      []*B   `protobuf:"bytes,1,rep,name=B,json=b" json:"B,omitempty"`
}

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

type B struct {
	C                *C     `protobuf:"bytes,1,opt,name=C,json=c" json:"C,omitempty"`
	D                *D     `protobuf:"bytes,2,opt,name=D,json=d" json:"D,omitempty"`
	F                *OldC  `protobuf:"bytes,5,opt,name=F,json=f" json:"F,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

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

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

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

type C struct {
	Field2           *float64  `protobuf:"fixed64,2,opt,name=Field2,json=field2" json:"Field2,omitempty"`
	Field3           *string   `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"`
	Field4           *float64  `protobuf:"fixed64,4,opt,name=Field4,json=field4" json:"Field4,omitempty"`
	Field5           [][]byte  `protobuf:"bytes,5,rep,name=Field5,json=field5" json:"Field5,omitempty"`
	Field6           *int64    `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"`
	Field7           []float32 `protobuf:"fixed32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"`
	XXX_unrecognized []byte    `json:"-"`
}

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

type U struct {
	Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"`
	Field3 *uint32   `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"`
}

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

type UnoM struct {
	Field2 []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"`
	Field3 *uint32   `protobuf:"varint,3,opt,name=Field3,json=field3" json:"Field3,omitempty"`
}

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

type OldA struct {
	Field1 *int64  `protobuf:"varint,2,opt,name=Field1,json=field1" json:"Field1,omitempty"`
	B      []*OldB `protobuf:"bytes,1,rep,name=B,json=b" json:"B,omitempty"`
}

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

type OldB struct {
	C                *OldC  `protobuf:"bytes,1,opt,name=C,json=c" json:"C,omitempty"`
	F                *OldC  `protobuf:"bytes,5,opt,name=F,json=f" json:"F,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

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

type OldC struct {
	Field1           *int64    `protobuf:"varint,1,opt,name=Field1,json=field1" json:"Field1,omitempty"`
	Field2           *float64  `protobuf:"fixed64,2,opt,name=Field2,json=field2" json:"Field2,omitempty"`
	Field3           *string   `protobuf:"bytes,3,opt,name=Field3,json=field3" json:"Field3,omitempty"`
	Field6           *int64    `protobuf:"varint,6,opt,name=Field6,json=field6" json:"Field6,omitempty"`
	Field7           []float32 `protobuf:"fixed32,7,rep,name=Field7,json=field7" json:"Field7,omitempty"`
	XXX_unrecognized []byte    `json:"-"`
}

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

type OldU struct {
	Field1           *string   `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"`
	Field2           []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"`
	XXX_unrecognized []byte    `json:"-"`
}

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

type OldUnoM struct {
	Field1           *string   `protobuf:"bytes,1,opt,name=Field1,json=field1" json:"Field1,omitempty"`
	Field2           []float64 `protobuf:"fixed64,2,rep,name=Field2,json=field2" json:"Field2,omitempty"`
	XXX_unrecognized []byte    `json:"-"`
}

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

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

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

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

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

	that1, ok := that.(*B)
	if !ok {
		that2, ok := that.(B)
		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.C.Equal(that1.C) {
		return false
	}
	if !this.D.Equal(that1.D) {
		return false
	}
	if !this.F.Equal(that1.F) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *D) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

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

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

	that1, ok := that.(*C)
	if !ok {
		that2, ok := that.(C)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *C")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *C but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *C but is not nil && this == nil")
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field4 != nil && that1.Field4 != nil {
		if *this.Field4 != *that1.Field4 {
			return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", *this.Field4, *that1.Field4)
		}
	} else if this.Field4 != nil {
		return fmt.Errorf("this.Field4 == nil && that.Field4 != nil")
	} else if that1.Field4 != nil {
		return fmt.Errorf("Field4 this(%v) Not Equal that(%v)", this.Field4, that1.Field4)
	}
	if len(this.Field5) != len(that1.Field5) {
		return fmt.Errorf("Field5 this(%v) Not Equal that(%v)", len(this.Field5), len(that1.Field5))
	}
	for i := range this.Field5 {
		if !bytes.Equal(this.Field5[i], that1.Field5[i]) {
			return fmt.Errorf("Field5 this[%v](%v) Not Equal that[%v](%v)", i, this.Field5[i], i, that1.Field5[i])
		}
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if !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 *C) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

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

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

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

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

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

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

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

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

	that1, ok := that.(*OldB)
	if !ok {
		that2, ok := that.(OldB)
		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.C.Equal(that1.C) {
		return false
	}
	if !this.F.Equal(that1.F) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *OldC) VerboseEqual(that interface{}) error {
	if that == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that == nil && this != nil")
	}

	that1, ok := that.(*OldC)
	if !ok {
		that2, ok := that.(OldC)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *OldC")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *OldC but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *OldC but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if this.Field2 != nil && that1.Field2 != nil {
		if *this.Field2 != *that1.Field2 {
			return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", *this.Field2, *that1.Field2)
		}
	} else if this.Field2 != nil {
		return fmt.Errorf("this.Field2 == nil && that.Field2 != nil")
	} else if that1.Field2 != nil {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", this.Field2, that1.Field2)
	}
	if this.Field3 != nil && that1.Field3 != nil {
		if *this.Field3 != *that1.Field3 {
			return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", *this.Field3, *that1.Field3)
		}
	} else if this.Field3 != nil {
		return fmt.Errorf("this.Field3 == nil && that.Field3 != nil")
	} else if that1.Field3 != nil {
		return fmt.Errorf("Field3 this(%v) Not Equal that(%v)", this.Field3, that1.Field3)
	}
	if this.Field6 != nil && that1.Field6 != nil {
		if *this.Field6 != *that1.Field6 {
			return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", *this.Field6, *that1.Field6)
		}
	} else if this.Field6 != nil {
		return fmt.Errorf("this.Field6 == nil && that.Field6 != nil")
	} else if that1.Field6 != nil {
		return fmt.Errorf("Field6 this(%v) Not Equal that(%v)", this.Field6, that1.Field6)
	}
	if len(this.Field7) != len(that1.Field7) {
		return fmt.Errorf("Field7 this(%v) Not Equal that(%v)", len(this.Field7), len(that1.Field7))
	}
	for i := range this.Field7 {
		if this.Field7[i] != that1.Field7[i] {
			return fmt.Errorf("Field7 this[%v](%v) Not Equal that[%v](%v)", i, this.Field7[i], i, that1.Field7[i])
		}
	}
	if !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 *OldC) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

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

	that1, ok := that.(*OldU)
	if !ok {
		that2, ok := that.(OldU)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *OldU")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *OldU but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *OldU but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if !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 *OldU) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

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

	that1, ok := that.(*OldUnoM)
	if !ok {
		that2, ok := that.(OldUnoM)
		if ok {
			that1 = &that2
		} else {
			return fmt.Errorf("that is not of type *OldUnoM")
		}
	}
	if that1 == nil {
		if this == nil {
			return nil
		}
		return fmt.Errorf("that is type *OldUnoM but is nil && this != nil")
	} else if this == nil {
		return fmt.Errorf("that is type *OldUnoM but is not nil && this == nil")
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", *this.Field1, *that1.Field1)
		}
	} else if this.Field1 != nil {
		return fmt.Errorf("this.Field1 == nil && that.Field1 != nil")
	} else if that1.Field1 != nil {
		return fmt.Errorf("Field1 this(%v) Not Equal that(%v)", this.Field1, that1.Field1)
	}
	if len(this.Field2) != len(that1.Field2) {
		return fmt.Errorf("Field2 this(%v) Not Equal that(%v)", len(this.Field2), len(that1.Field2))
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return fmt.Errorf("Field2 this[%v](%v) Not Equal that[%v](%v)", i, this.Field2[i], i, that1.Field2[i])
		}
	}
	if !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 *OldUnoM) Equal(that interface{}) bool {
	if that == nil {
		if this == nil {
			return true
		}
		return false
	}

	that1, ok := that.(*OldUnoM)
	if !ok {
		that2, ok := that.(OldUnoM)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		if this == nil {
			return true
		}
		return false
	} else if this == nil {
		return false
	}
	if this.Field1 != nil && that1.Field1 != nil {
		if *this.Field1 != *that1.Field1 {
			return false
		}
	} else if this.Field1 != nil {
		return false
	} else if that1.Field1 != nil {
		return false
	}
	if len(this.Field2) != len(that1.Field2) {
		return false
	}
	for i := range this.Field2 {
		if this.Field2[i] != that1.Field2[i] {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *A) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.A{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "int64")+",\n")
	}
	if this.B != nil {
		s = append(s, "B: "+fmt.Sprintf("%#v", this.B)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *B) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 7)
	s = append(s, "&unrecognized.B{")
	if this.C != nil {
		s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n")
	}
	if this.D != nil {
		s = append(s, "D: "+fmt.Sprintf("%#v", this.D)+",\n")
	}
	if this.F != nil {
		s = append(s, "F: "+fmt.Sprintf("%#v", this.F)+",\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 *D) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 5)
	s = append(s, "&unrecognized.D{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "int64")+",\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 *C) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 10)
	s = append(s, "&unrecognized.C{")
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringUnrecognized(this.Field2, "float64")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringUnrecognized(this.Field3, "string")+",\n")
	}
	if this.Field4 != nil {
		s = append(s, "Field4: "+valueToGoStringUnrecognized(this.Field4, "float64")+",\n")
	}
	if this.Field5 != nil {
		s = append(s, "Field5: "+fmt.Sprintf("%#v", this.Field5)+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringUnrecognized(this.Field6, "int64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\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 *U) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.U{")
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringUnrecognized(this.Field3, "uint32")+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *UnoM) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.UnoM{")
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringUnrecognized(this.Field3, "uint32")+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *OldA) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.OldA{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "int64")+",\n")
	}
	if this.B != nil {
		s = append(s, "B: "+fmt.Sprintf("%#v", this.B)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *OldB) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.OldB{")
	if this.C != nil {
		s = append(s, "C: "+fmt.Sprintf("%#v", this.C)+",\n")
	}
	if this.F != nil {
		s = append(s, "F: "+fmt.Sprintf("%#v", this.F)+",\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 *OldC) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 9)
	s = append(s, "&unrecognized.OldC{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "int64")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+valueToGoStringUnrecognized(this.Field2, "float64")+",\n")
	}
	if this.Field3 != nil {
		s = append(s, "Field3: "+valueToGoStringUnrecognized(this.Field3, "string")+",\n")
	}
	if this.Field6 != nil {
		s = append(s, "Field6: "+valueToGoStringUnrecognized(this.Field6, "int64")+",\n")
	}
	if this.Field7 != nil {
		s = append(s, "Field7: "+fmt.Sprintf("%#v", this.Field7)+",\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 *OldU) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.OldU{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "string")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func (this *OldUnoM) GoString() string {
	if this == nil {
		return "nil"
	}
	s := make([]string, 0, 6)
	s = append(s, "&unrecognized.OldUnoM{")
	if this.Field1 != nil {
		s = append(s, "Field1: "+valueToGoStringUnrecognized(this.Field1, "string")+",\n")
	}
	if this.Field2 != nil {
		s = append(s, "Field2: "+fmt.Sprintf("%#v", this.Field2)+",\n")
	}
	if this.XXX_unrecognized != nil {
		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
	}
	s = append(s, "}")
	return strings.Join(s, "")
}
func valueToGoStringUnrecognized(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 extensionToGoStringUnrecognized(e map[int32]github_com_gogo_protobuf_proto.Extension) string {
	if e == nil {
		return "nil"
	}
	s := "map[int32]proto.Extension{"
	keys := make([]int, 0, len(e))
	for k := range e {
		keys = append(keys, int(k))
	}
	sort.Ints(keys)
	ss := []string{}
	for _, k := range keys {
		ss = append(ss, strconv.Itoa(k)+": "+e[int32(k)].GoString())
	}
	s += strings.Join(ss, ",") + "}"
	return s
}
func (m *A) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *A) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.B) > 0 {
		for _, msg := range m.B {
			data[i] = 0xa
			i++
			i = encodeVarintUnrecognized(data, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(data[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if m.Field1 != nil {
		data[i] = 0x10
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field1))
	}
	return i, nil
}

func (m *B) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *B) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.C != nil {
		data[i] = 0xa
		i++
		i = encodeVarintUnrecognized(data, i, uint64(m.C.Size()))
		n1, err := m.C.MarshalTo(data[i:])
		if err != nil {
			return 0, err
		}
		i += n1
	}
	if m.D != nil {
		data[i] = 0x12
		i++
		i = encodeVarintUnrecognized(data, i, uint64(m.D.Size()))
		n2, err := m.D.MarshalTo(data[i:])
		if err != nil {
			return 0, err
		}
		i += n2
	}
	if m.F != nil {
		data[i] = 0x2a
		i++
		i = encodeVarintUnrecognized(data, i, uint64(m.F.Size()))
		n3, err := m.F.MarshalTo(data[i:])
		if err != nil {
			return 0, err
		}
		i += n3
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *D) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *D) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		data[i] = 0x8
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field1))
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *C) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *C) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Field2 != nil {
		data[i] = 0x11
		i++
		i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field2))))
	}
	if m.Field3 != nil {
		data[i] = 0x1a
		i++
		i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field3)))
		i += copy(data[i:], *m.Field3)
	}
	if m.Field4 != nil {
		data[i] = 0x21
		i++
		i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field4))))
	}
	if len(m.Field5) > 0 {
		for _, b := range m.Field5 {
			data[i] = 0x2a
			i++
			i = encodeVarintUnrecognized(data, i, uint64(len(b)))
			i += copy(data[i:], b)
		}
	}
	if m.Field6 != nil {
		data[i] = 0x30
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field6))
	}
	if len(m.Field7) > 0 {
		for _, num := range m.Field7 {
			data[i] = 0x3d
			i++
			f4 := math.Float32bits(float32(num))
			data[i] = uint8(f4)
			i++
			data[i] = uint8(f4 >> 8)
			i++
			data[i] = uint8(f4 >> 16)
			i++
			data[i] = uint8(f4 >> 24)
			i++
		}
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *U) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *U) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Field2) > 0 {
		for _, num := range m.Field2 {
			data[i] = 0x11
			i++
			f5 := math.Float64bits(float64(num))
			data[i] = uint8(f5)
			i++
			data[i] = uint8(f5 >> 8)
			i++
			data[i] = uint8(f5 >> 16)
			i++
			data[i] = uint8(f5 >> 24)
			i++
			data[i] = uint8(f5 >> 32)
			i++
			data[i] = uint8(f5 >> 40)
			i++
			data[i] = uint8(f5 >> 48)
			i++
			data[i] = uint8(f5 >> 56)
			i++
		}
	}
	if m.Field3 != nil {
		data[i] = 0x18
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field3))
	}
	return i, nil
}

func (m *OldA) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *OldA) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.B) > 0 {
		for _, msg := range m.B {
			data[i] = 0xa
			i++
			i = encodeVarintUnrecognized(data, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(data[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if m.Field1 != nil {
		data[i] = 0x10
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field1))
	}
	return i, nil
}

func (m *OldB) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *OldB) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.C != nil {
		data[i] = 0xa
		i++
		i = encodeVarintUnrecognized(data, i, uint64(m.C.Size()))
		n6, err := m.C.MarshalTo(data[i:])
		if err != nil {
			return 0, err
		}
		i += n6
	}
	if m.F != nil {
		data[i] = 0x2a
		i++
		i = encodeVarintUnrecognized(data, i, uint64(m.F.Size()))
		n7, err := m.F.MarshalTo(data[i:])
		if err != nil {
			return 0, err
		}
		i += n7
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *OldC) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *OldC) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		data[i] = 0x8
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field1))
	}
	if m.Field2 != nil {
		data[i] = 0x11
		i++
		i = encodeFixed64Unrecognized(data, i, uint64(math.Float64bits(float64(*m.Field2))))
	}
	if m.Field3 != nil {
		data[i] = 0x1a
		i++
		i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field3)))
		i += copy(data[i:], *m.Field3)
	}
	if m.Field6 != nil {
		data[i] = 0x30
		i++
		i = encodeVarintUnrecognized(data, i, uint64(*m.Field6))
	}
	if len(m.Field7) > 0 {
		for _, num := range m.Field7 {
			data[i] = 0x3d
			i++
			f8 := math.Float32bits(float32(num))
			data[i] = uint8(f8)
			i++
			data[i] = uint8(f8 >> 8)
			i++
			data[i] = uint8(f8 >> 16)
			i++
			data[i] = uint8(f8 >> 24)
			i++
		}
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *OldU) Marshal() (data []byte, err error) {
	size := m.Size()
	data = make([]byte, size)
	n, err := m.MarshalTo(data)
	if err != nil {
		return nil, err
	}
	return data[:n], nil
}

func (m *OldU) MarshalTo(data []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.Field1 != nil {
		data[i] = 0xa
		i++
		i = encodeVarintUnrecognized(data, i, uint64(len(*m.Field1)))
		i += copy(data[i:], *m.Field1)
	}
	if len(m.Field2) > 0 {
		for _, num := range m.Field2 {
			data[i] = 0x11
			i++
			f9 := math.Float64bits(float64(num))
			data[i] = uint8(f9)
			i++
			data[i] = uint8(f9 >> 8)
			i++
			data[i] = uint8(f9 >> 16)
			i++
			data[i] = uint8(f9 >> 24)
			i++
			data[i] = uint8(f9 >> 32)
			i++
			data[i] = uint8(f9 >> 40)
			i++
			data[i] = uint8(f9 >> 48)
			i++
			data[i] = uint8(f9 >> 56)
			i++
		}
	}
	if m.XXX_unrecognized != nil {
		i += copy(data[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func encodeFixed64Unrecognized(data []byte, offset int, v uint64) int {
	data[offset] = uint8(v)
	data[offset+1] = uint8(v >> 8)
	data[offset+2] = uint8(v >> 16)
	data[offset+3] = uint8(v >> 24)
	data[offset+4] = uint8(v >> 32)
	data[offset+5] = uint8(v >> 40)
	data[offset+6] = uint8(v >> 48)
	data[offset+7] = uint8(v >> 56)
	return offset + 8
}
func encodeFixed32Unrecognized(data []byte, offset int, v uint32) int {
	data[offset] = uint8(v)
	data[offset+1] = uint8(v >> 8)
	data[offset+2] = uint8(v >> 16)
	data[offset+3] = uint8(v >> 24)
	return offset + 4
}
func encodeVarintUnrecognized(data []byte, offset int, v uint64) int {
	for v >= 1<<7 {
		data[offset] = uint8(v&0x7f | 0x80)
		v >>= 7
		offset++
	}
	data[offset] = uint8(v)
	return offset + 1
}
func NewPopulatedA(r randyUnrecognized, easy bool) *A {
	this := &A{}
	if r.Intn(10) != 0 {
		v1 := r.Intn(5)
		this.B = make([]*B, v1)
		for i := 0; i < v1; i++ {
			this.B[i] = NewPopulatedB(r, easy)
		}
	}
	if r.Intn(10) != 0 {
		v2 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v2 *= -1
		}
		this.Field1 = &v2
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedB(r randyUnrecognized, easy bool) *B {
	this := &B{}
	if r.Intn(10) != 0 {
		this.C = NewPopulatedC(r, easy)
	}
	if r.Intn(10) != 0 {
		this.D = NewPopulatedD(r, easy)
	}
	if r.Intn(10) != 0 {
		this.F = NewPopulatedOldC(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 6)
	}
	return this
}

func NewPopulatedD(r randyUnrecognized, easy bool) *D {
	this := &D{}
	if r.Intn(10) != 0 {
		v3 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v3 *= -1
		}
		this.Field1 = &v3
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 2)
	}
	return this
}

func NewPopulatedC(r randyUnrecognized, easy bool) *C {
	this := &C{}
	if r.Intn(10) != 0 {
		v4 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v4 *= -1
		}
		this.Field2 = &v4
	}
	if r.Intn(10) != 0 {
		v5 := randStringUnrecognized(r)
		this.Field3 = &v5
	}
	if r.Intn(10) != 0 {
		v6 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v6 *= -1
		}
		this.Field4 = &v6
	}
	if r.Intn(10) != 0 {
		v7 := r.Intn(10)
		this.Field5 = make([][]byte, v7)
		for i := 0; i < v7; i++ {
			v8 := r.Intn(100)
			this.Field5[i] = make([]byte, v8)
			for j := 0; j < v8; j++ {
				this.Field5[i][j] = byte(r.Intn(256))
			}
		}
	}
	if r.Intn(10) != 0 {
		v9 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v9 *= -1
		}
		this.Field6 = &v9
	}
	if r.Intn(10) != 0 {
		v10 := r.Intn(10)
		this.Field7 = make([]float32, v10)
		for i := 0; i < v10; i++ {
			this.Field7[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 8)
	}
	return this
}

func NewPopulatedU(r randyUnrecognized, easy bool) *U {
	this := &U{}
	if r.Intn(10) != 0 {
		v11 := r.Intn(10)
		this.Field2 = make([]float64, v11)
		for i := 0; i < v11; i++ {
			this.Field2[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v12 := uint32(r.Uint32())
		this.Field3 = &v12
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedUnoM(r randyUnrecognized, easy bool) *UnoM {
	this := &UnoM{}
	if r.Intn(10) != 0 {
		v13 := r.Intn(10)
		this.Field2 = make([]float64, v13)
		for i := 0; i < v13; i++ {
			this.Field2[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if r.Intn(10) != 0 {
		v14 := uint32(r.Uint32())
		this.Field3 = &v14
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedOldA(r randyUnrecognized, easy bool) *OldA {
	this := &OldA{}
	if r.Intn(10) != 0 {
		v15 := r.Intn(5)
		this.B = make([]*OldB, v15)
		for i := 0; i < v15; i++ {
			this.B[i] = NewPopulatedOldB(r, easy)
		}
	}
	if r.Intn(10) != 0 {
		v16 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v16 *= -1
		}
		this.Field1 = &v16
	}
	if !easy && r.Intn(10) != 0 {
	}
	return this
}

func NewPopulatedOldB(r randyUnrecognized, easy bool) *OldB {
	this := &OldB{}
	if r.Intn(10) != 0 {
		this.C = NewPopulatedOldC(r, easy)
	}
	if r.Intn(10) != 0 {
		this.F = NewPopulatedOldC(r, easy)
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 6)
	}
	return this
}

func NewPopulatedOldC(r randyUnrecognized, easy bool) *OldC {
	this := &OldC{}
	if r.Intn(10) != 0 {
		v17 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v17 *= -1
		}
		this.Field1 = &v17
	}
	if r.Intn(10) != 0 {
		v18 := float64(r.Float64())
		if r.Intn(2) == 0 {
			v18 *= -1
		}
		this.Field2 = &v18
	}
	if r.Intn(10) != 0 {
		v19 := randStringUnrecognized(r)
		this.Field3 = &v19
	}
	if r.Intn(10) != 0 {
		v20 := int64(r.Int63())
		if r.Intn(2) == 0 {
			v20 *= -1
		}
		this.Field6 = &v20
	}
	if r.Intn(10) != 0 {
		v21 := r.Intn(10)
		this.Field7 = make([]float32, v21)
		for i := 0; i < v21; i++ {
			this.Field7[i] = float32(r.Float32())
			if r.Intn(2) == 0 {
				this.Field7[i] *= -1
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 8)
	}
	return this
}

func NewPopulatedOldU(r randyUnrecognized, easy bool) *OldU {
	this := &OldU{}
	if r.Intn(10) != 0 {
		v22 := randStringUnrecognized(r)
		this.Field1 = &v22
	}
	if r.Intn(10) != 0 {
		v23 := r.Intn(10)
		this.Field2 = make([]float64, v23)
		for i := 0; i < v23; i++ {
			this.Field2[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 3)
	}
	return this
}

func NewPopulatedOldUnoM(r randyUnrecognized, easy bool) *OldUnoM {
	this := &OldUnoM{}
	if r.Intn(10) != 0 {
		v24 := randStringUnrecognized(r)
		this.Field1 = &v24
	}
	if r.Intn(10) != 0 {
		v25 := r.Intn(10)
		this.Field2 = make([]float64, v25)
		for i := 0; i < v25; i++ {
			this.Field2[i] = float64(r.Float64())
			if r.Intn(2) == 0 {
				this.Field2[i] *= -1
			}
		}
	}
	if !easy && r.Intn(10) != 0 {
		this.XXX_unrecognized = randUnrecognizedUnrecognized(r, 3)
	}
	return this
}

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

func randUTF8RuneUnrecognized(r randyUnrecognized) 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 randStringUnrecognized(r randyUnrecognized) string {
	v26 := r.Intn(100)
	tmps := make([]rune, v26)
	for i := 0; i < v26; i++ {
		tmps[i] = randUTF8RuneUnrecognized(r)
	}
	return string(tmps)
}
func randUnrecognizedUnrecognized(r randyUnrecognized, 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 = randFieldUnrecognized(data, r, fieldNumber, wire)
	}
	return data
}
func randFieldUnrecognized(data []byte, r randyUnrecognized, fieldNumber int, wire int) []byte {
	key := uint32(fieldNumber)<<3 | uint32(wire)
	switch wire {
	case 0:
		data = encodeVarintPopulateUnrecognized(data, uint64(key))
		v27 := r.Int63()
		if r.Intn(2) == 0 {
			v27 *= -1
		}
		data = encodeVarintPopulateUnrecognized(data, uint64(v27))
	case 1:
		data = encodeVarintPopulateUnrecognized(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 = encodeVarintPopulateUnrecognized(data, uint64(key))
		ll := r.Intn(100)
		data = encodeVarintPopulateUnrecognized(data, uint64(ll))
		for j := 0; j < ll; j++ {
			data = append(data, byte(r.Intn(256)))
		}
	default:
		data = encodeVarintPopulateUnrecognized(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 encodeVarintPopulateUnrecognized(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 *A) Size() (n int) {
	var l int
	_ = l
	if len(m.B) > 0 {
		for _, e := range m.B {
			l = e.Size()
			n += 1 + l + sovUnrecognized(uint64(l))
		}
	}
	if m.Field1 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field1))
	}
	return n
}

func (m *B) Size() (n int) {
	var l int
	_ = l
	if m.C != nil {
		l = m.C.Size()
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.D != nil {
		l = m.D.Size()
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.F != nil {
		l = m.F.Size()
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *D) Size() (n int) {
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field1))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *C) Size() (n int) {
	var l int
	_ = l
	if m.Field2 != nil {
		n += 9
	}
	if m.Field3 != nil {
		l = len(*m.Field3)
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.Field4 != nil {
		n += 9
	}
	if len(m.Field5) > 0 {
		for _, b := range m.Field5 {
			l = len(b)
			n += 1 + l + sovUnrecognized(uint64(l))
		}
	}
	if m.Field6 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field6))
	}
	if len(m.Field7) > 0 {
		n += 5 * len(m.Field7)
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *U) Size() (n int) {
	var l int
	_ = l
	if len(m.Field2) > 0 {
		n += 9 * len(m.Field2)
	}
	if m.Field3 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field3))
	}
	return n
}

func (m *OldA) Size() (n int) {
	var l int
	_ = l
	if len(m.B) > 0 {
		for _, e := range m.B {
			l = e.Size()
			n += 1 + l + sovUnrecognized(uint64(l))
		}
	}
	if m.Field1 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field1))
	}
	return n
}

func (m *OldB) Size() (n int) {
	var l int
	_ = l
	if m.C != nil {
		l = m.C.Size()
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.F != nil {
		l = m.F.Size()
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *OldC) Size() (n int) {
	var l int
	_ = l
	if m.Field1 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field1))
	}
	if m.Field2 != nil {
		n += 9
	}
	if m.Field3 != nil {
		l = len(*m.Field3)
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if m.Field6 != nil {
		n += 1 + sovUnrecognized(uint64(*m.Field6))
	}
	if len(m.Field7) > 0 {
		n += 5 * len(m.Field7)
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *OldU) Size() (n int) {
	var l int
	_ = l
	if m.Field1 != nil {
		l = len(*m.Field1)
		n += 1 + l + sovUnrecognized(uint64(l))
	}
	if len(m.Field2) > 0 {
		n += 9 * len(m.Field2)
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func sovUnrecognized(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozUnrecognized(x uint64) (n int) {
	return sovUnrecognized(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *A) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&A{`,
		`B:` + strings.Replace(fmt.Sprintf("%v", this.B), "B", "B", 1) + `,`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *B) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&B{`,
		`C:` + strings.Replace(fmt.Sprintf("%v", this.C), "C", "C", 1) + `,`,
		`D:` + strings.Replace(fmt.Sprintf("%v", this.D), "D", "D", 1) + `,`,
		`F:` + strings.Replace(fmt.Sprintf("%v", this.F), "OldC", "OldC", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *D) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&D{`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *C) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&C{`,
		`Field2:` + valueToStringUnrecognized(this.Field2) + `,`,
		`Field3:` + valueToStringUnrecognized(this.Field3) + `,`,
		`Field4:` + valueToStringUnrecognized(this.Field4) + `,`,
		`Field5:` + fmt.Sprintf("%v", this.Field5) + `,`,
		`Field6:` + valueToStringUnrecognized(this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *U) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&U{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + valueToStringUnrecognized(this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *UnoM) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&UnoM{`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`Field3:` + valueToStringUnrecognized(this.Field3) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OldA) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OldA{`,
		`B:` + strings.Replace(fmt.Sprintf("%v", this.B), "OldB", "OldB", 1) + `,`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OldB) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OldB{`,
		`C:` + strings.Replace(fmt.Sprintf("%v", this.C), "OldC", "OldC", 1) + `,`,
		`F:` + strings.Replace(fmt.Sprintf("%v", this.F), "OldC", "OldC", 1) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OldC) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OldC{`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`Field2:` + valueToStringUnrecognized(this.Field2) + `,`,
		`Field3:` + valueToStringUnrecognized(this.Field3) + `,`,
		`Field6:` + valueToStringUnrecognized(this.Field6) + `,`,
		`Field7:` + fmt.Sprintf("%v", this.Field7) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OldU) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OldU{`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func (this *OldUnoM) String() string {
	if this == nil {
		return "nil"
	}
	s := strings.Join([]string{`&OldUnoM{`,
		`Field1:` + valueToStringUnrecognized(this.Field1) + `,`,
		`Field2:` + fmt.Sprintf("%v", this.Field2) + `,`,
		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
		`}`,
	}, "")
	return s
}
func valueToStringUnrecognized(v interface{}) string {
	rv := reflect.ValueOf(v)
	if rv.IsNil() {
		return "nil"
	}
	pv := reflect.Indirect(rv).Interface()
	return fmt.Sprintf("*%v", pv)
}
func (m *A) 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 ErrIntOverflowUnrecognized
			}
			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: A: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: A: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field B", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.B = append(m.B, &B{})
			if err := m.B[len(m.B)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *B) 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 ErrIntOverflowUnrecognized
			}
			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: B: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: B: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field C", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.C == nil {
				m.C = &C{}
			}
			if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field D", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.D == nil {
				m.D = &D{}
			}
			if err := m.D.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field F", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.F == nil {
				m.F = &OldC{}
			}
			if err := m.F.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 *D) 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 ErrIntOverflowUnrecognized
			}
			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: D: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: D: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 *C) 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 ErrIntOverflowUnrecognized
			}
			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: C: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: C: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				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 ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field3 = &s
			iNdEx = postIndex
		case 4:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field4", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field4 = &v2
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field5", wireType)
			}
			var byteLen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				byteLen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if byteLen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + byteLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Field5 = append(m.Field5, make([]byte, postIndex-iNdEx))
			copy(m.Field5[len(m.Field5)-1], data[iNdEx:postIndex])
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field7 = append(m.Field7, v2)
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 *U) 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 ErrIntOverflowUnrecognized
			}
			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: U: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: U: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field2 = append(m.Field2, v2)
		case 3:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var v uint32
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (uint32(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field3 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *OldA) 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 ErrIntOverflowUnrecognized
			}
			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: OldA: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OldA: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field B", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.B = append(m.B, &OldB{})
			if err := m.B[len(m.B)-1].Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			if (iNdEx + skippy) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += skippy
		}
	}

	if iNdEx > l {
		return io.ErrUnexpectedEOF
	}
	return nil
}
func (m *OldB) 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 ErrIntOverflowUnrecognized
			}
			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: OldB: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OldB: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field C", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.C == nil {
				m.C = &OldC{}
			}
			if err := m.C.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field F", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.F == nil {
				m.F = &OldC{}
			}
			if err := m.F.Unmarshal(data[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 *OldC) 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 ErrIntOverflowUnrecognized
			}
			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: OldC: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OldC: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field1 = &v
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field2 = &v2
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field3", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				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 ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field3 = &s
			iNdEx = postIndex
		case 6:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field6", wireType)
			}
			var v int64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := data[iNdEx]
				iNdEx++
				v |= (int64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			m.Field6 = &v
		case 7:
			if wireType != 5 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field7", wireType)
			}
			var v uint32
			if (iNdEx + 4) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 4
			v = uint32(data[iNdEx-4])
			v |= uint32(data[iNdEx-3]) << 8
			v |= uint32(data[iNdEx-2]) << 16
			v |= uint32(data[iNdEx-1]) << 24
			v2 := float32(math.Float32frombits(v))
			m.Field7 = append(m.Field7, v2)
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 *OldU) 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 ErrIntOverflowUnrecognized
			}
			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: OldU: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: OldU: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field1", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowUnrecognized
				}
				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 ErrInvalidLengthUnrecognized
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			s := string(data[iNdEx:postIndex])
			m.Field1 = &s
			iNdEx = postIndex
		case 2:
			if wireType != 1 {
				return fmt.Errorf("proto: wrong wireType = %d for field Field2", wireType)
			}
			var v uint64
			if (iNdEx + 8) > l {
				return io.ErrUnexpectedEOF
			}
			iNdEx += 8
			v = uint64(data[iNdEx-8])
			v |= uint64(data[iNdEx-7]) << 8
			v |= uint64(data[iNdEx-6]) << 16
			v |= uint64(data[iNdEx-5]) << 24
			v |= uint64(data[iNdEx-4]) << 32
			v |= uint64(data[iNdEx-3]) << 40
			v |= uint64(data[iNdEx-2]) << 48
			v |= uint64(data[iNdEx-1]) << 56
			v2 := float64(math.Float64frombits(v))
			m.Field2 = append(m.Field2, v2)
		default:
			iNdEx = preIndex
			skippy, err := skipUnrecognized(data[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthUnrecognized
			}
			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 skipUnrecognized(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, ErrIntOverflowUnrecognized
			}
			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, ErrIntOverflowUnrecognized
				}
				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, ErrIntOverflowUnrecognized
				}
				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, ErrInvalidLengthUnrecognized
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowUnrecognized
					}
					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 := skipUnrecognized(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 (
	ErrInvalidLengthUnrecognized = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowUnrecognized   = fmt.Errorf("proto: integer overflow")
)

var fileDescriptorUnrecognized = []byte{
	// 398 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x12, 0x2a, 0xcd, 0x2b, 0x4a,
	0x4d, 0xce, 0x4f, 0xcf, 0xcb, 0xac, 0x4a, 0x4d, 0xd1, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2,
	0x41, 0x16, 0x93, 0xd2, 0x4d, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f,
	0xcf, 0x4f, 0xcf, 0xd7, 0x07, 0x2b, 0x4a, 0x2a, 0x4d, 0x03, 0xf3, 0xc0, 0x1c, 0x30, 0x0b, 0xa2,
	0x59, 0xc9, 0x81, 0x8b, 0xd1, 0x51, 0x48, 0x96, 0x8b, 0xd1, 0x49, 0x82, 0x51, 0x81, 0x59, 0x83,
	0xdb, 0x88, 0x5f, 0x0f, 0xc5, 0x06, 0xa7, 0x20, 0xc6, 0x24, 0x21, 0x31, 0x2e, 0x36, 0xb7, 0xcc,
	0xd4, 0x9c, 0x14, 0x43, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xe6, 0x20, 0xb6, 0x34, 0x30, 0xcf, 0x8a,
	0xe5, 0xc2, 0x42, 0x79, 0x06, 0xa5, 0x64, 0xa0, 0x66, 0x90, 0x09, 0xce, 0x40, 0x13, 0x18, 0x31,
	0x4d, 0x70, 0x0e, 0x62, 0x4c, 0x06, 0x49, 0xbb, 0x80, 0x35, 0x63, 0x48, 0xbb, 0x04, 0x31, 0xa6,
	0x08, 0x29, 0x70, 0x31, 0xba, 0x49, 0xb0, 0x82, 0xa5, 0x85, 0x50, 0xa5, 0xfd, 0x73, 0x52, 0x80,
	0x06, 0xa4, 0x29, 0x49, 0x03, 0x0d, 0x40, 0x72, 0x07, 0x23, 0xb2, 0x3b, 0x94, 0x26, 0x33, 0x02,
	0x6d, 0x87, 0xcb, 0x1a, 0x81, 0x2d, 0x62, 0x84, 0xca, 0x1a, 0xc1, 0xc5, 0x8d, 0x25, 0x98, 0x81,
	0xe2, 0x9c, 0x50, 0x71, 0x63, 0xb8, 0xb8, 0x89, 0x04, 0x0b, 0x92, 0x7a, 0x13, 0xb8, 0xb8, 0x29,
	0xd0, 0x45, 0xcc, 0x1a, 0x3c, 0x50, 0x71, 0x53, 0xb8, 0xb8, 0x99, 0x04, 0x1b, 0x92, 0xed, 0x66,
	0x70, 0x71, 0x73, 0x09, 0x76, 0xa0, 0x7a, 0x26, 0xa8, 0xb8, 0xb9, 0x92, 0x25, 0x17, 0x63, 0x28,
	0x8a, 0xa3, 0x98, 0x71, 0x3a, 0x8a, 0x17, 0xe6, 0x28, 0x68, 0x90, 0x7a, 0x70, 0xb1, 0x84, 0xe6,
	0xe5, 0xfb, 0x92, 0xac, 0x5b, 0xa0, 0x03, 0xa8, 0x7b, 0x02, 0x10, 0x2f, 0x00, 0x62, 0xb0, 0x49,
	0x6e, 0x5c, 0x2c, 0xc0, 0x20, 0x74, 0x04, 0x85, 0x30, 0x2c, 0x86, 0x31, 0x43, 0x98, 0x88, 0x48,
	0xf6, 0x02, 0x9b, 0xe3, 0x04, 0x32, 0x07, 0x16, 0xcf, 0x58, 0x63, 0x2a, 0x99, 0x88, 0xb8, 0xac,
	0x03, 0x9b, 0xe5, 0x8c, 0x2b, 0x3a, 0xc9, 0x8e, 0x48, 0x62, 0x23, 0xc6, 0x0c, 0x6c, 0x7f, 0x28,
	0x9a, 0xfd, 0x9c, 0x58, 0xed, 0x47, 0x0a, 0x75, 0x25, 0x77, 0x2e, 0x76, 0x90, 0x3e, 0xe4, 0x88,
	0x21, 0x52, 0xab, 0x15, 0x0f, 0x72, 0xc4, 0x38, 0x99, 0x9c, 0x78, 0x28, 0xc7, 0x70, 0x01, 0x88,
	0x6f, 0x00, 0xf1, 0x83, 0x87, 0x72, 0x8c, 0x1f, 0x80, 0xf8, 0x07, 0x10, 0x37, 0x3c, 0x92, 0x63,
	0x5c, 0x01, 0xc4, 0x1b, 0x80, 0x78, 0x07, 0x10, 0x9f, 0x00, 0xe2, 0x0b, 0x40, 0xfc, 0x00, 0x88,
	0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xea, 0xec, 0xd3, 0x83, 0xfb, 0x03, 0x00, 0x00,
}
