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

/*
Package testdata is a generated protocol buffer package.

It is generated from these files:
	test.proto

It has these top-level messages:
	GoEnum
	GoTestField
	GoTest
	GoSkipTest
	NonPackedTest
	PackedTest
	MaxTag
	OldMessage
	NewMessage
	InnerMessage
	OtherMessage
	MyMessage
	Ext
	DefaultsMessage
	MyMessageSet
	Empty
	MessageList
	Strings
	Defaults
	SubDefaults
	RepeatedEnum
	MoreRepeated
	GroupOld
	GroupNew
	FloatingPoint
	MessageWithMap
	Communique
*/
package testdata

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

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

type FOO int32

const (
	FOO_FOO1 FOO = 1
)

var FOO_name = map[int32]string{
	1: "FOO1",
}
var FOO_value = map[string]int32{
	"FOO1": 1,
}

func (x FOO) Enum() *FOO {
	p := new(FOO)
	*p = x
	return p
}
func (x FOO) String() string {
	return proto.EnumName(FOO_name, int32(x))
}
func (x *FOO) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(FOO_value, data, "FOO")
	if err != nil {
		return err
	}
	*x = FOO(value)
	return nil
}

// An enum, for completeness.
type GoTest_KIND int32

const (
	GoTest_VOID GoTest_KIND = 0
	// Basic types
	GoTest_BOOL        GoTest_KIND = 1
	GoTest_BYTES       GoTest_KIND = 2
	GoTest_FINGERPRINT GoTest_KIND = 3
	GoTest_FLOAT       GoTest_KIND = 4
	GoTest_INT         GoTest_KIND = 5
	GoTest_STRING      GoTest_KIND = 6
	GoTest_TIME        GoTest_KIND = 7
	// Groupings
	GoTest_TUPLE GoTest_KIND = 8
	GoTest_ARRAY GoTest_KIND = 9
	GoTest_MAP   GoTest_KIND = 10
	// Table types
	GoTest_TABLE GoTest_KIND = 11
	// Functions
	GoTest_FUNCTION GoTest_KIND = 12
)

var GoTest_KIND_name = map[int32]string{
	0:  "VOID",
	1:  "BOOL",
	2:  "BYTES",
	3:  "FINGERPRINT",
	4:  "FLOAT",
	5:  "INT",
	6:  "STRING",
	7:  "TIME",
	8:  "TUPLE",
	9:  "ARRAY",
	10: "MAP",
	11: "TABLE",
	12: "FUNCTION",
}
var GoTest_KIND_value = map[string]int32{
	"VOID":        0,
	"BOOL":        1,
	"BYTES":       2,
	"FINGERPRINT": 3,
	"FLOAT":       4,
	"INT":         5,
	"STRING":      6,
	"TIME":        7,
	"TUPLE":       8,
	"ARRAY":       9,
	"MAP":         10,
	"TABLE":       11,
	"FUNCTION":    12,
}

func (x GoTest_KIND) Enum() *GoTest_KIND {
	p := new(GoTest_KIND)
	*p = x
	return p
}
func (x GoTest_KIND) String() string {
	return proto.EnumName(GoTest_KIND_name, int32(x))
}
func (x *GoTest_KIND) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(GoTest_KIND_value, data, "GoTest_KIND")
	if err != nil {
		return err
	}
	*x = GoTest_KIND(value)
	return nil
}

type MyMessage_Color int32

const (
	MyMessage_RED   MyMessage_Color = 0
	MyMessage_GREEN MyMessage_Color = 1
	MyMessage_BLUE  MyMessage_Color = 2
)

var MyMessage_Color_name = map[int32]string{
	0: "RED",
	1: "GREEN",
	2: "BLUE",
}
var MyMessage_Color_value = map[string]int32{
	"RED":   0,
	"GREEN": 1,
	"BLUE":  2,
}

func (x MyMessage_Color) Enum() *MyMessage_Color {
	p := new(MyMessage_Color)
	*p = x
	return p
}
func (x MyMessage_Color) String() string {
	return proto.EnumName(MyMessage_Color_name, int32(x))
}
func (x *MyMessage_Color) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(MyMessage_Color_value, data, "MyMessage_Color")
	if err != nil {
		return err
	}
	*x = MyMessage_Color(value)
	return nil
}

type DefaultsMessage_DefaultsEnum int32

const (
	DefaultsMessage_ZERO DefaultsMessage_DefaultsEnum = 0
	DefaultsMessage_ONE  DefaultsMessage_DefaultsEnum = 1
	DefaultsMessage_TWO  DefaultsMessage_DefaultsEnum = 2
)

var DefaultsMessage_DefaultsEnum_name = map[int32]string{
	0: "ZERO",
	1: "ONE",
	2: "TWO",
}
var DefaultsMessage_DefaultsEnum_value = map[string]int32{
	"ZERO": 0,
	"ONE":  1,
	"TWO":  2,
}

func (x DefaultsMessage_DefaultsEnum) Enum() *DefaultsMessage_DefaultsEnum {
	p := new(DefaultsMessage_DefaultsEnum)
	*p = x
	return p
}
func (x DefaultsMessage_DefaultsEnum) String() string {
	return proto.EnumName(DefaultsMessage_DefaultsEnum_name, int32(x))
}
func (x *DefaultsMessage_DefaultsEnum) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(DefaultsMessage_DefaultsEnum_value, data, "DefaultsMessage_DefaultsEnum")
	if err != nil {
		return err
	}
	*x = DefaultsMessage_DefaultsEnum(value)
	return nil
}

type Defaults_Color int32

const (
	Defaults_RED   Defaults_Color = 0
	Defaults_GREEN Defaults_Color = 1
	Defaults_BLUE  Defaults_Color = 2
)

var Defaults_Color_name = map[int32]string{
	0: "RED",
	1: "GREEN",
	2: "BLUE",
}
var Defaults_Color_value = map[string]int32{
	"RED":   0,
	"GREEN": 1,
	"BLUE":  2,
}

func (x Defaults_Color) Enum() *Defaults_Color {
	p := new(Defaults_Color)
	*p = x
	return p
}
func (x Defaults_Color) String() string {
	return proto.EnumName(Defaults_Color_name, int32(x))
}
func (x *Defaults_Color) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(Defaults_Color_value, data, "Defaults_Color")
	if err != nil {
		return err
	}
	*x = Defaults_Color(value)
	return nil
}

type RepeatedEnum_Color int32

const (
	RepeatedEnum_RED RepeatedEnum_Color = 1
)

var RepeatedEnum_Color_name = map[int32]string{
	1: "RED",
}
var RepeatedEnum_Color_value = map[string]int32{
	"RED": 1,
}

func (x RepeatedEnum_Color) Enum() *RepeatedEnum_Color {
	p := new(RepeatedEnum_Color)
	*p = x
	return p
}
func (x RepeatedEnum_Color) String() string {
	return proto.EnumName(RepeatedEnum_Color_name, int32(x))
}
func (x *RepeatedEnum_Color) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(RepeatedEnum_Color_value, data, "RepeatedEnum_Color")
	if err != nil {
		return err
	}
	*x = RepeatedEnum_Color(value)
	return nil
}

type GoEnum struct {
	Foo              *FOO   `protobuf:"varint,1,req,name=foo,enum=testdata.FOO" json:"foo,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *GoEnum) Reset()         { *m = GoEnum{} }
func (m *GoEnum) String() string { return proto.CompactTextString(m) }
func (*GoEnum) ProtoMessage()    {}

func (m *GoEnum) GetFoo() FOO {
	if m != nil && m.Foo != nil {
		return *m.Foo
	}
	return FOO_FOO1
}

type GoTestField struct {
	Label            *string `protobuf:"bytes,1,req,name=Label" json:"Label,omitempty"`
	Type             *string `protobuf:"bytes,2,req,name=Type" json:"Type,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *GoTestField) Reset()         { *m = GoTestField{} }
func (m *GoTestField) String() string { return proto.CompactTextString(m) }
func (*GoTestField) ProtoMessage()    {}

func (m *GoTestField) GetLabel() string {
	if m != nil && m.Label != nil {
		return *m.Label
	}
	return ""
}

func (m *GoTestField) GetType() string {
	if m != nil && m.Type != nil {
		return *m.Type
	}
	return ""
}

type GoTest struct {
	// Some typical parameters
	Kind  *GoTest_KIND `protobuf:"varint,1,req,name=Kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"`
	Table *string      `protobuf:"bytes,2,opt,name=Table" json:"Table,omitempty"`
	Param *int32       `protobuf:"varint,3,opt,name=Param" json:"Param,omitempty"`
	// Required, repeated and optional foreign fields.
	RequiredField *GoTestField   `protobuf:"bytes,4,req,name=RequiredField" json:"RequiredField,omitempty"`
	RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField" json:"RepeatedField,omitempty"`
	OptionalField *GoTestField   `protobuf:"bytes,6,opt,name=OptionalField" json:"OptionalField,omitempty"`
	// Required fields of all basic types
	F_BoolRequired    *bool    `protobuf:"varint,10,req,name=F_Bool_required" json:"F_Bool_required,omitempty"`
	F_Int32Required   *int32   `protobuf:"varint,11,req,name=F_Int32_required" json:"F_Int32_required,omitempty"`
	F_Int64Required   *int64   `protobuf:"varint,12,req,name=F_Int64_required" json:"F_Int64_required,omitempty"`
	F_Fixed32Required *uint32  `protobuf:"fixed32,13,req,name=F_Fixed32_required" json:"F_Fixed32_required,omitempty"`
	F_Fixed64Required *uint64  `protobuf:"fixed64,14,req,name=F_Fixed64_required" json:"F_Fixed64_required,omitempty"`
	F_Uint32Required  *uint32  `protobuf:"varint,15,req,name=F_Uint32_required" json:"F_Uint32_required,omitempty"`
	F_Uint64Required  *uint64  `protobuf:"varint,16,req,name=F_Uint64_required" json:"F_Uint64_required,omitempty"`
	F_FloatRequired   *float32 `protobuf:"fixed32,17,req,name=F_Float_required" json:"F_Float_required,omitempty"`
	F_DoubleRequired  *float64 `protobuf:"fixed64,18,req,name=F_Double_required" json:"F_Double_required,omitempty"`
	F_StringRequired  *string  `protobuf:"bytes,19,req,name=F_String_required" json:"F_String_required,omitempty"`
	F_BytesRequired   []byte   `protobuf:"bytes,101,req,name=F_Bytes_required" json:"F_Bytes_required,omitempty"`
	F_Sint32Required  *int32   `protobuf:"zigzag32,102,req,name=F_Sint32_required" json:"F_Sint32_required,omitempty"`
	F_Sint64Required  *int64   `protobuf:"zigzag64,103,req,name=F_Sint64_required" json:"F_Sint64_required,omitempty"`
	// Repeated fields of all basic types
	F_BoolRepeated    []bool    `protobuf:"varint,20,rep,name=F_Bool_repeated" json:"F_Bool_repeated,omitempty"`
	F_Int32Repeated   []int32   `protobuf:"varint,21,rep,name=F_Int32_repeated" json:"F_Int32_repeated,omitempty"`
	F_Int64Repeated   []int64   `protobuf:"varint,22,rep,name=F_Int64_repeated" json:"F_Int64_repeated,omitempty"`
	F_Fixed32Repeated []uint32  `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated" json:"F_Fixed32_repeated,omitempty"`
	F_Fixed64Repeated []uint64  `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated" json:"F_Fixed64_repeated,omitempty"`
	F_Uint32Repeated  []uint32  `protobuf:"varint,25,rep,name=F_Uint32_repeated" json:"F_Uint32_repeated,omitempty"`
	F_Uint64Repeated  []uint64  `protobuf:"varint,26,rep,name=F_Uint64_repeated" json:"F_Uint64_repeated,omitempty"`
	F_FloatRepeated   []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated" json:"F_Float_repeated,omitempty"`
	F_DoubleRepeated  []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated" json:"F_Double_repeated,omitempty"`
	F_StringRepeated  []string  `protobuf:"bytes,29,rep,name=F_String_repeated" json:"F_String_repeated,omitempty"`
	F_BytesRepeated   [][]byte  `protobuf:"bytes,201,rep,name=F_Bytes_repeated" json:"F_Bytes_repeated,omitempty"`
	F_Sint32Repeated  []int32   `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated" json:"F_Sint32_repeated,omitempty"`
	F_Sint64Repeated  []int64   `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated" json:"F_Sint64_repeated,omitempty"`
	// Optional fields of all basic types
	F_BoolOptional    *bool    `protobuf:"varint,30,opt,name=F_Bool_optional" json:"F_Bool_optional,omitempty"`
	F_Int32Optional   *int32   `protobuf:"varint,31,opt,name=F_Int32_optional" json:"F_Int32_optional,omitempty"`
	F_Int64Optional   *int64   `protobuf:"varint,32,opt,name=F_Int64_optional" json:"F_Int64_optional,omitempty"`
	F_Fixed32Optional *uint32  `protobuf:"fixed32,33,opt,name=F_Fixed32_optional" json:"F_Fixed32_optional,omitempty"`
	F_Fixed64Optional *uint64  `protobuf:"fixed64,34,opt,name=F_Fixed64_optional" json:"F_Fixed64_optional,omitempty"`
	F_Uint32Optional  *uint32  `protobuf:"varint,35,opt,name=F_Uint32_optional" json:"F_Uint32_optional,omitempty"`
	F_Uint64Optional  *uint64  `protobuf:"varint,36,opt,name=F_Uint64_optional" json:"F_Uint64_optional,omitempty"`
	F_FloatOptional   *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional" json:"F_Float_optional,omitempty"`
	F_DoubleOptional  *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional" json:"F_Double_optional,omitempty"`
	F_StringOptional  *string  `protobuf:"bytes,39,opt,name=F_String_optional" json:"F_String_optional,omitempty"`
	F_BytesOptional   []byte   `protobuf:"bytes,301,opt,name=F_Bytes_optional" json:"F_Bytes_optional,omitempty"`
	F_Sint32Optional  *int32   `protobuf:"zigzag32,302,opt,name=F_Sint32_optional" json:"F_Sint32_optional,omitempty"`
	F_Sint64Optional  *int64   `protobuf:"zigzag64,303,opt,name=F_Sint64_optional" json:"F_Sint64_optional,omitempty"`
	// Default-valued fields of all basic types
	F_BoolDefaulted    *bool    `protobuf:"varint,40,opt,name=F_Bool_defaulted,def=1" json:"F_Bool_defaulted,omitempty"`
	F_Int32Defaulted   *int32   `protobuf:"varint,41,opt,name=F_Int32_defaulted,def=32" json:"F_Int32_defaulted,omitempty"`
	F_Int64Defaulted   *int64   `protobuf:"varint,42,opt,name=F_Int64_defaulted,def=64" json:"F_Int64_defaulted,omitempty"`
	F_Fixed32Defaulted *uint32  `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"`
	F_Fixed64Defaulted *uint64  `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"`
	F_Uint32Defaulted  *uint32  `protobuf:"varint,45,opt,name=F_Uint32_defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"`
	F_Uint64Defaulted  *uint64  `protobuf:"varint,46,opt,name=F_Uint64_defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"`
	F_FloatDefaulted   *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,def=314159" json:"F_Float_defaulted,omitempty"`
	F_DoubleDefaulted  *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,def=271828" json:"F_Double_defaulted,omitempty"`
	F_StringDefaulted  *string  `protobuf:"bytes,49,opt,name=F_String_defaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"`
	F_BytesDefaulted   []byte   `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"`
	F_Sint32Defaulted  *int32   `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"`
	F_Sint64Defaulted  *int64   `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"`
	// Packed repeated fields (no string or bytes).
	F_BoolRepeatedPacked    []bool                  `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed" json:"F_Bool_repeated_packed,omitempty"`
	F_Int32RepeatedPacked   []int32                 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed" json:"F_Int32_repeated_packed,omitempty"`
	F_Int64RepeatedPacked   []int64                 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed" json:"F_Int64_repeated_packed,omitempty"`
	F_Fixed32RepeatedPacked []uint32                `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed" json:"F_Fixed32_repeated_packed,omitempty"`
	F_Fixed64RepeatedPacked []uint64                `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed" json:"F_Fixed64_repeated_packed,omitempty"`
	F_Uint32RepeatedPacked  []uint32                `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed" json:"F_Uint32_repeated_packed,omitempty"`
	F_Uint64RepeatedPacked  []uint64                `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed" json:"F_Uint64_repeated_packed,omitempty"`
	F_FloatRepeatedPacked   []float32               `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed" json:"F_Float_repeated_packed,omitempty"`
	F_DoubleRepeatedPacked  []float64               `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed" json:"F_Double_repeated_packed,omitempty"`
	F_Sint32RepeatedPacked  []int32                 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed" json:"F_Sint32_repeated_packed,omitempty"`
	F_Sint64RepeatedPacked  []int64                 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed" json:"F_Sint64_repeated_packed,omitempty"`
	Requiredgroup           *GoTest_RequiredGroup   `protobuf:"group,70,req,name=RequiredGroup" json:"requiredgroup,omitempty"`
	Repeatedgroup           []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup" json:"repeatedgroup,omitempty"`
	Optionalgroup           *GoTest_OptionalGroup   `protobuf:"group,90,opt,name=OptionalGroup" json:"optionalgroup,omitempty"`
	XXX_unrecognized        []byte                  `json:"-"`
}

func (m *GoTest) Reset()         { *m = GoTest{} }
func (m *GoTest) String() string { return proto.CompactTextString(m) }
func (*GoTest) ProtoMessage()    {}

const Default_GoTest_F_BoolDefaulted bool = true
const Default_GoTest_F_Int32Defaulted int32 = 32
const Default_GoTest_F_Int64Defaulted int64 = 64
const Default_GoTest_F_Fixed32Defaulted uint32 = 320
const Default_GoTest_F_Fixed64Defaulted uint64 = 640
const Default_GoTest_F_Uint32Defaulted uint32 = 3200
const Default_GoTest_F_Uint64Defaulted uint64 = 6400
const Default_GoTest_F_FloatDefaulted float32 = 314159
const Default_GoTest_F_DoubleDefaulted float64 = 271828
const Default_GoTest_F_StringDefaulted string = "hello, \"world!\"\n"

var Default_GoTest_F_BytesDefaulted []byte = []byte("Bignose")

const Default_GoTest_F_Sint32Defaulted int32 = -32
const Default_GoTest_F_Sint64Defaulted int64 = -64

func (m *GoTest) GetKind() GoTest_KIND {
	if m != nil && m.Kind != nil {
		return *m.Kind
	}
	return GoTest_VOID
}

func (m *GoTest) GetTable() string {
	if m != nil && m.Table != nil {
		return *m.Table
	}
	return ""
}

func (m *GoTest) GetParam() int32 {
	if m != nil && m.Param != nil {
		return *m.Param
	}
	return 0
}

func (m *GoTest) GetRequiredField() *GoTestField {
	if m != nil {
		return m.RequiredField
	}
	return nil
}

func (m *GoTest) GetRepeatedField() []*GoTestField {
	if m != nil {
		return m.RepeatedField
	}
	return nil
}

func (m *GoTest) GetOptionalField() *GoTestField {
	if m != nil {
		return m.OptionalField
	}
	return nil
}

func (m *GoTest) GetF_BoolRequired() bool {
	if m != nil && m.F_BoolRequired != nil {
		return *m.F_BoolRequired
	}
	return false
}

func (m *GoTest) GetF_Int32Required() int32 {
	if m != nil && m.F_Int32Required != nil {
		return *m.F_Int32Required
	}
	return 0
}

func (m *GoTest) GetF_Int64Required() int64 {
	if m != nil && m.F_Int64Required != nil {
		return *m.F_Int64Required
	}
	return 0
}

func (m *GoTest) GetF_Fixed32Required() uint32 {
	if m != nil && m.F_Fixed32Required != nil {
		return *m.F_Fixed32Required
	}
	return 0
}

func (m *GoTest) GetF_Fixed64Required() uint64 {
	if m != nil && m.F_Fixed64Required != nil {
		return *m.F_Fixed64Required
	}
	return 0
}

func (m *GoTest) GetF_Uint32Required() uint32 {
	if m != nil && m.F_Uint32Required != nil {
		return *m.F_Uint32Required
	}
	return 0
}

func (m *GoTest) GetF_Uint64Required() uint64 {
	if m != nil && m.F_Uint64Required != nil {
		return *m.F_Uint64Required
	}
	return 0
}

func (m *GoTest) GetF_FloatRequired() float32 {
	if m != nil && m.F_FloatRequired != nil {
		return *m.F_FloatRequired
	}
	return 0
}

func (m *GoTest) GetF_DoubleRequired() float64 {
	if m != nil && m.F_DoubleRequired != nil {
		return *m.F_DoubleRequired
	}
	return 0
}

func (m *GoTest) GetF_StringRequired() string {
	if m != nil && m.F_StringRequired != nil {
		return *m.F_StringRequired
	}
	return ""
}

func (m *GoTest) GetF_BytesRequired() []byte {
	if m != nil {
		return m.F_BytesRequired
	}
	return nil
}

func (m *GoTest) GetF_Sint32Required() int32 {
	if m != nil && m.F_Sint32Required != nil {
		return *m.F_Sint32Required
	}
	return 0
}

func (m *GoTest) GetF_Sint64Required() int64 {
	if m != nil && m.F_Sint64Required != nil {
		return *m.F_Sint64Required
	}
	return 0
}

func (m *GoTest) GetF_BoolRepeated() []bool {
	if m != nil {
		return m.F_BoolRepeated
	}
	return nil
}

func (m *GoTest) GetF_Int32Repeated() []int32 {
	if m != nil {
		return m.F_Int32Repeated
	}
	return nil
}

func (m *GoTest) GetF_Int64Repeated() []int64 {
	if m != nil {
		return m.F_Int64Repeated
	}
	return nil
}

func (m *GoTest) GetF_Fixed32Repeated() []uint32 {
	if m != nil {
		return m.F_Fixed32Repeated
	}
	return nil
}

func (m *GoTest) GetF_Fixed64Repeated() []uint64 {
	if m != nil {
		return m.F_Fixed64Repeated
	}
	return nil
}

func (m *GoTest) GetF_Uint32Repeated() []uint32 {
	if m != nil {
		return m.F_Uint32Repeated
	}
	return nil
}

func (m *GoTest) GetF_Uint64Repeated() []uint64 {
	if m != nil {
		return m.F_Uint64Repeated
	}
	return nil
}

func (m *GoTest) GetF_FloatRepeated() []float32 {
	if m != nil {
		return m.F_FloatRepeated
	}
	return nil
}

func (m *GoTest) GetF_DoubleRepeated() []float64 {
	if m != nil {
		return m.F_DoubleRepeated
	}
	return nil
}

func (m *GoTest) GetF_StringRepeated() []string {
	if m != nil {
		return m.F_StringRepeated
	}
	return nil
}

func (m *GoTest) GetF_BytesRepeated() [][]byte {
	if m != nil {
		return m.F_BytesRepeated
	}
	return nil
}

func (m *GoTest) GetF_Sint32Repeated() []int32 {
	if m != nil {
		return m.F_Sint32Repeated
	}
	return nil
}

func (m *GoTest) GetF_Sint64Repeated() []int64 {
	if m != nil {
		return m.F_Sint64Repeated
	}
	return nil
}

func (m *GoTest) GetF_BoolOptional() bool {
	if m != nil && m.F_BoolOptional != nil {
		return *m.F_BoolOptional
	}
	return false
}

func (m *GoTest) GetF_Int32Optional() int32 {
	if m != nil && m.F_Int32Optional != nil {
		return *m.F_Int32Optional
	}
	return 0
}

func (m *GoTest) GetF_Int64Optional() int64 {
	if m != nil && m.F_Int64Optional != nil {
		return *m.F_Int64Optional
	}
	return 0
}

func (m *GoTest) GetF_Fixed32Optional() uint32 {
	if m != nil && m.F_Fixed32Optional != nil {
		return *m.F_Fixed32Optional
	}
	return 0
}

func (m *GoTest) GetF_Fixed64Optional() uint64 {
	if m != nil && m.F_Fixed64Optional != nil {
		return *m.F_Fixed64Optional
	}
	return 0
}

func (m *GoTest) GetF_Uint32Optional() uint32 {
	if m != nil && m.F_Uint32Optional != nil {
		return *m.F_Uint32Optional
	}
	return 0
}

func (m *GoTest) GetF_Uint64Optional() uint64 {
	if m != nil && m.F_Uint64Optional != nil {
		return *m.F_Uint64Optional
	}
	return 0
}

func (m *GoTest) GetF_FloatOptional() float32 {
	if m != nil && m.F_FloatOptional != nil {
		return *m.F_FloatOptional
	}
	return 0
}

func (m *GoTest) GetF_DoubleOptional() float64 {
	if m != nil && m.F_DoubleOptional != nil {
		return *m.F_DoubleOptional
	}
	return 0
}

func (m *GoTest) GetF_StringOptional() string {
	if m != nil && m.F_StringOptional != nil {
		return *m.F_StringOptional
	}
	return ""
}

func (m *GoTest) GetF_BytesOptional() []byte {
	if m != nil {
		return m.F_BytesOptional
	}
	return nil
}

func (m *GoTest) GetF_Sint32Optional() int32 {
	if m != nil && m.F_Sint32Optional != nil {
		return *m.F_Sint32Optional
	}
	return 0
}

func (m *GoTest) GetF_Sint64Optional() int64 {
	if m != nil && m.F_Sint64Optional != nil {
		return *m.F_Sint64Optional
	}
	return 0
}

func (m *GoTest) GetF_BoolDefaulted() bool {
	if m != nil && m.F_BoolDefaulted != nil {
		return *m.F_BoolDefaulted
	}
	return Default_GoTest_F_BoolDefaulted
}

func (m *GoTest) GetF_Int32Defaulted() int32 {
	if m != nil && m.F_Int32Defaulted != nil {
		return *m.F_Int32Defaulted
	}
	return Default_GoTest_F_Int32Defaulted
}

func (m *GoTest) GetF_Int64Defaulted() int64 {
	if m != nil && m.F_Int64Defaulted != nil {
		return *m.F_Int64Defaulted
	}
	return Default_GoTest_F_Int64Defaulted
}

func (m *GoTest) GetF_Fixed32Defaulted() uint32 {
	if m != nil && m.F_Fixed32Defaulted != nil {
		return *m.F_Fixed32Defaulted
	}
	return Default_GoTest_F_Fixed32Defaulted
}

func (m *GoTest) GetF_Fixed64Defaulted() uint64 {
	if m != nil && m.F_Fixed64Defaulted != nil {
		return *m.F_Fixed64Defaulted
	}
	return Default_GoTest_F_Fixed64Defaulted
}

func (m *GoTest) GetF_Uint32Defaulted() uint32 {
	if m != nil && m.F_Uint32Defaulted != nil {
		return *m.F_Uint32Defaulted
	}
	return Default_GoTest_F_Uint32Defaulted
}

func (m *GoTest) GetF_Uint64Defaulted() uint64 {
	if m != nil && m.F_Uint64Defaulted != nil {
		return *m.F_Uint64Defaulted
	}
	return Default_GoTest_F_Uint64Defaulted
}

func (m *GoTest) GetF_FloatDefaulted() float32 {
	if m != nil && m.F_FloatDefaulted != nil {
		return *m.F_FloatDefaulted
	}
	return Default_GoTest_F_FloatDefaulted
}

func (m *GoTest) GetF_DoubleDefaulted() float64 {
	if m != nil && m.F_DoubleDefaulted != nil {
		return *m.F_DoubleDefaulted
	}
	return Default_GoTest_F_DoubleDefaulted
}

func (m *GoTest) GetF_StringDefaulted() string {
	if m != nil && m.F_StringDefaulted != nil {
		return *m.F_StringDefaulted
	}
	return Default_GoTest_F_StringDefaulted
}

func (m *GoTest) GetF_BytesDefaulted() []byte {
	if m != nil && m.F_BytesDefaulted != nil {
		return m.F_BytesDefaulted
	}
	return append([]byte(nil), Default_GoTest_F_BytesDefaulted...)
}

func (m *GoTest) GetF_Sint32Defaulted() int32 {
	if m != nil && m.F_Sint32Defaulted != nil {
		return *m.F_Sint32Defaulted
	}
	return Default_GoTest_F_Sint32Defaulted
}

func (m *GoTest) GetF_Sint64Defaulted() int64 {
	if m != nil && m.F_Sint64Defaulted != nil {
		return *m.F_Sint64Defaulted
	}
	return Default_GoTest_F_Sint64Defaulted
}

func (m *GoTest) GetF_BoolRepeatedPacked() []bool {
	if m != nil {
		return m.F_BoolRepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Int32RepeatedPacked() []int32 {
	if m != nil {
		return m.F_Int32RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Int64RepeatedPacked() []int64 {
	if m != nil {
		return m.F_Int64RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Fixed32RepeatedPacked() []uint32 {
	if m != nil {
		return m.F_Fixed32RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Fixed64RepeatedPacked() []uint64 {
	if m != nil {
		return m.F_Fixed64RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Uint32RepeatedPacked() []uint32 {
	if m != nil {
		return m.F_Uint32RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Uint64RepeatedPacked() []uint64 {
	if m != nil {
		return m.F_Uint64RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_FloatRepeatedPacked() []float32 {
	if m != nil {
		return m.F_FloatRepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_DoubleRepeatedPacked() []float64 {
	if m != nil {
		return m.F_DoubleRepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Sint32RepeatedPacked() []int32 {
	if m != nil {
		return m.F_Sint32RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetF_Sint64RepeatedPacked() []int64 {
	if m != nil {
		return m.F_Sint64RepeatedPacked
	}
	return nil
}

func (m *GoTest) GetRequiredgroup() *GoTest_RequiredGroup {
	if m != nil {
		return m.Requiredgroup
	}
	return nil
}

func (m *GoTest) GetRepeatedgroup() []*GoTest_RepeatedGroup {
	if m != nil {
		return m.Repeatedgroup
	}
	return nil
}

func (m *GoTest) GetOptionalgroup() *GoTest_OptionalGroup {
	if m != nil {
		return m.Optionalgroup
	}
	return nil
}

// Required, repeated, and optional groups.
type GoTest_RequiredGroup struct {
	RequiredField    *string `protobuf:"bytes,71,req,name=RequiredField" json:"RequiredField,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *GoTest_RequiredGroup) Reset()         { *m = GoTest_RequiredGroup{} }
func (m *GoTest_RequiredGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_RequiredGroup) ProtoMessage()    {}

func (m *GoTest_RequiredGroup) GetRequiredField() string {
	if m != nil && m.RequiredField != nil {
		return *m.RequiredField
	}
	return ""
}

type GoTest_RepeatedGroup struct {
	RequiredField    *string `protobuf:"bytes,81,req,name=RequiredField" json:"RequiredField,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *GoTest_RepeatedGroup) Reset()         { *m = GoTest_RepeatedGroup{} }
func (m *GoTest_RepeatedGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_RepeatedGroup) ProtoMessage()    {}

func (m *GoTest_RepeatedGroup) GetRequiredField() string {
	if m != nil && m.RequiredField != nil {
		return *m.RequiredField
	}
	return ""
}

type GoTest_OptionalGroup struct {
	RequiredField    *string `protobuf:"bytes,91,req,name=RequiredField" json:"RequiredField,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *GoTest_OptionalGroup) Reset()         { *m = GoTest_OptionalGroup{} }
func (m *GoTest_OptionalGroup) String() string { return proto.CompactTextString(m) }
func (*GoTest_OptionalGroup) ProtoMessage()    {}

func (m *GoTest_OptionalGroup) GetRequiredField() string {
	if m != nil && m.RequiredField != nil {
		return *m.RequiredField
	}
	return ""
}

// For testing skipping of unrecognized fields.
// Numbers are all big, larger than tag numbers in GoTestField,
// the message used in the corresponding test.
type GoSkipTest struct {
	SkipInt32        *int32                `protobuf:"varint,11,req,name=skip_int32" json:"skip_int32,omitempty"`
	SkipFixed32      *uint32               `protobuf:"fixed32,12,req,name=skip_fixed32" json:"skip_fixed32,omitempty"`
	SkipFixed64      *uint64               `protobuf:"fixed64,13,req,name=skip_fixed64" json:"skip_fixed64,omitempty"`
	SkipString       *string               `protobuf:"bytes,14,req,name=skip_string" json:"skip_string,omitempty"`
	Skipgroup        *GoSkipTest_SkipGroup `protobuf:"group,15,req,name=SkipGroup" json:"skipgroup,omitempty"`
	XXX_unrecognized []byte                `json:"-"`
}

func (m *GoSkipTest) Reset()         { *m = GoSkipTest{} }
func (m *GoSkipTest) String() string { return proto.CompactTextString(m) }
func (*GoSkipTest) ProtoMessage()    {}

func (m *GoSkipTest) GetSkipInt32() int32 {
	if m != nil && m.SkipInt32 != nil {
		return *m.SkipInt32
	}
	return 0
}

func (m *GoSkipTest) GetSkipFixed32() uint32 {
	if m != nil && m.SkipFixed32 != nil {
		return *m.SkipFixed32
	}
	return 0
}

func (m *GoSkipTest) GetSkipFixed64() uint64 {
	if m != nil && m.SkipFixed64 != nil {
		return *m.SkipFixed64
	}
	return 0
}

func (m *GoSkipTest) GetSkipString() string {
	if m != nil && m.SkipString != nil {
		return *m.SkipString
	}
	return ""
}

func (m *GoSkipTest) GetSkipgroup() *GoSkipTest_SkipGroup {
	if m != nil {
		return m.Skipgroup
	}
	return nil
}

type GoSkipTest_SkipGroup struct {
	GroupInt32       *int32  `protobuf:"varint,16,req,name=group_int32" json:"group_int32,omitempty"`
	GroupString      *string `protobuf:"bytes,17,req,name=group_string" json:"group_string,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *GoSkipTest_SkipGroup) Reset()         { *m = GoSkipTest_SkipGroup{} }
func (m *GoSkipTest_SkipGroup) String() string { return proto.CompactTextString(m) }
func (*GoSkipTest_SkipGroup) ProtoMessage()    {}

func (m *GoSkipTest_SkipGroup) GetGroupInt32() int32 {
	if m != nil && m.GroupInt32 != nil {
		return *m.GroupInt32
	}
	return 0
}

func (m *GoSkipTest_SkipGroup) GetGroupString() string {
	if m != nil && m.GroupString != nil {
		return *m.GroupString
	}
	return ""
}

// For testing packed/non-packed decoder switching.
// A serialized instance of one should be deserializable as the other.
type NonPackedTest struct {
	A                []int32 `protobuf:"varint,1,rep,name=a" json:"a,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *NonPackedTest) Reset()         { *m = NonPackedTest{} }
func (m *NonPackedTest) String() string { return proto.CompactTextString(m) }
func (*NonPackedTest) ProtoMessage()    {}

func (m *NonPackedTest) GetA() []int32 {
	if m != nil {
		return m.A
	}
	return nil
}

type PackedTest struct {
	B                []int32 `protobuf:"varint,1,rep,packed,name=b" json:"b,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *PackedTest) Reset()         { *m = PackedTest{} }
func (m *PackedTest) String() string { return proto.CompactTextString(m) }
func (*PackedTest) ProtoMessage()    {}

func (m *PackedTest) GetB() []int32 {
	if m != nil {
		return m.B
	}
	return nil
}

type MaxTag struct {
	// Maximum possible tag number.
	LastField        *string `protobuf:"bytes,536870911,opt,name=last_field" json:"last_field,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *MaxTag) Reset()         { *m = MaxTag{} }
func (m *MaxTag) String() string { return proto.CompactTextString(m) }
func (*MaxTag) ProtoMessage()    {}

func (m *MaxTag) GetLastField() string {
	if m != nil && m.LastField != nil {
		return *m.LastField
	}
	return ""
}

type OldMessage struct {
	Nested           *OldMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"`
	Num              *int32             `protobuf:"varint,2,opt,name=num" json:"num,omitempty"`
	XXX_unrecognized []byte             `json:"-"`
}

func (m *OldMessage) Reset()         { *m = OldMessage{} }
func (m *OldMessage) String() string { return proto.CompactTextString(m) }
func (*OldMessage) ProtoMessage()    {}

func (m *OldMessage) GetNested() *OldMessage_Nested {
	if m != nil {
		return m.Nested
	}
	return nil
}

func (m *OldMessage) GetNum() int32 {
	if m != nil && m.Num != nil {
		return *m.Num
	}
	return 0
}

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

func (m *OldMessage_Nested) Reset()         { *m = OldMessage_Nested{} }
func (m *OldMessage_Nested) String() string { return proto.CompactTextString(m) }
func (*OldMessage_Nested) ProtoMessage()    {}

func (m *OldMessage_Nested) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

// NewMessage is wire compatible with OldMessage;
// imagine it as a future version.
type NewMessage struct {
	Nested *NewMessage_Nested `protobuf:"bytes,1,opt,name=nested" json:"nested,omitempty"`
	// This is an int32 in OldMessage.
	Num              *int64 `protobuf:"varint,2,opt,name=num" json:"num,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *NewMessage) Reset()         { *m = NewMessage{} }
func (m *NewMessage) String() string { return proto.CompactTextString(m) }
func (*NewMessage) ProtoMessage()    {}

func (m *NewMessage) GetNested() *NewMessage_Nested {
	if m != nil {
		return m.Nested
	}
	return nil
}

func (m *NewMessage) GetNum() int64 {
	if m != nil && m.Num != nil {
		return *m.Num
	}
	return 0
}

type NewMessage_Nested struct {
	Name             *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	FoodGroup        *string `protobuf:"bytes,2,opt,name=food_group" json:"food_group,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *NewMessage_Nested) Reset()         { *m = NewMessage_Nested{} }
func (m *NewMessage_Nested) String() string { return proto.CompactTextString(m) }
func (*NewMessage_Nested) ProtoMessage()    {}

func (m *NewMessage_Nested) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *NewMessage_Nested) GetFoodGroup() string {
	if m != nil && m.FoodGroup != nil {
		return *m.FoodGroup
	}
	return ""
}

type InnerMessage struct {
	Host             *string `protobuf:"bytes,1,req,name=host" json:"host,omitempty"`
	Port             *int32  `protobuf:"varint,2,opt,name=port,def=4000" json:"port,omitempty"`
	Connected        *bool   `protobuf:"varint,3,opt,name=connected" json:"connected,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *InnerMessage) Reset()         { *m = InnerMessage{} }
func (m *InnerMessage) String() string { return proto.CompactTextString(m) }
func (*InnerMessage) ProtoMessage()    {}

const Default_InnerMessage_Port int32 = 4000

func (m *InnerMessage) GetHost() string {
	if m != nil && m.Host != nil {
		return *m.Host
	}
	return ""
}

func (m *InnerMessage) GetPort() int32 {
	if m != nil && m.Port != nil {
		return *m.Port
	}
	return Default_InnerMessage_Port
}

func (m *InnerMessage) GetConnected() bool {
	if m != nil && m.Connected != nil {
		return *m.Connected
	}
	return false
}

type OtherMessage struct {
	Key              *int64        `protobuf:"varint,1,opt,name=key" json:"key,omitempty"`
	Value            []byte        `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
	Weight           *float32      `protobuf:"fixed32,3,opt,name=weight" json:"weight,omitempty"`
	Inner            *InnerMessage `protobuf:"bytes,4,opt,name=inner" json:"inner,omitempty"`
	XXX_unrecognized []byte        `json:"-"`
}

func (m *OtherMessage) Reset()         { *m = OtherMessage{} }
func (m *OtherMessage) String() string { return proto.CompactTextString(m) }
func (*OtherMessage) ProtoMessage()    {}

func (m *OtherMessage) GetKey() int64 {
	if m != nil && m.Key != nil {
		return *m.Key
	}
	return 0
}

func (m *OtherMessage) GetValue() []byte {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *OtherMessage) GetWeight() float32 {
	if m != nil && m.Weight != nil {
		return *m.Weight
	}
	return 0
}

func (m *OtherMessage) GetInner() *InnerMessage {
	if m != nil {
		return m.Inner
	}
	return nil
}

type MyMessage struct {
	Count     *int32               `protobuf:"varint,1,req,name=count" json:"count,omitempty"`
	Name      *string              `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	Quote     *string              `protobuf:"bytes,3,opt,name=quote" json:"quote,omitempty"`
	Pet       []string             `protobuf:"bytes,4,rep,name=pet" json:"pet,omitempty"`
	Inner     *InnerMessage        `protobuf:"bytes,5,opt,name=inner" json:"inner,omitempty"`
	Others    []*OtherMessage      `protobuf:"bytes,6,rep,name=others" json:"others,omitempty"`
	RepInner  []*InnerMessage      `protobuf:"bytes,12,rep,name=rep_inner" json:"rep_inner,omitempty"`
	Bikeshed  *MyMessage_Color     `protobuf:"varint,7,opt,name=bikeshed,enum=testdata.MyMessage_Color" json:"bikeshed,omitempty"`
	Somegroup *MyMessage_SomeGroup `protobuf:"group,8,opt,name=SomeGroup" json:"somegroup,omitempty"`
	// This field becomes [][]byte in the generated code.
	RepBytes         [][]byte                  `protobuf:"bytes,10,rep,name=rep_bytes" json:"rep_bytes,omitempty"`
	Bigfloat         *float64                  `protobuf:"fixed64,11,opt,name=bigfloat" json:"bigfloat,omitempty"`
	XXX_extensions   map[int32]proto.Extension `json:"-"`
	XXX_unrecognized []byte                    `json:"-"`
}

func (m *MyMessage) Reset()         { *m = MyMessage{} }
func (m *MyMessage) String() string { return proto.CompactTextString(m) }
func (*MyMessage) ProtoMessage()    {}

var extRange_MyMessage = []proto.ExtensionRange{
	{100, 536870911},
}

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

func (m *MyMessage) GetCount() int32 {
	if m != nil && m.Count != nil {
		return *m.Count
	}
	return 0
}

func (m *MyMessage) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *MyMessage) GetQuote() string {
	if m != nil && m.Quote != nil {
		return *m.Quote
	}
	return ""
}

func (m *MyMessage) GetPet() []string {
	if m != nil {
		return m.Pet
	}
	return nil
}

func (m *MyMessage) GetInner() *InnerMessage {
	if m != nil {
		return m.Inner
	}
	return nil
}

func (m *MyMessage) GetOthers() []*OtherMessage {
	if m != nil {
		return m.Others
	}
	return nil
}

func (m *MyMessage) GetRepInner() []*InnerMessage {
	if m != nil {
		return m.RepInner
	}
	return nil
}

func (m *MyMessage) GetBikeshed() MyMessage_Color {
	if m != nil && m.Bikeshed != nil {
		return *m.Bikeshed
	}
	return MyMessage_RED
}

func (m *MyMessage) GetSomegroup() *MyMessage_SomeGroup {
	if m != nil {
		return m.Somegroup
	}
	return nil
}

func (m *MyMessage) GetRepBytes() [][]byte {
	if m != nil {
		return m.RepBytes
	}
	return nil
}

func (m *MyMessage) GetBigfloat() float64 {
	if m != nil && m.Bigfloat != nil {
		return *m.Bigfloat
	}
	return 0
}

type MyMessage_SomeGroup struct {
	GroupField       *int32 `protobuf:"varint,9,opt,name=group_field" json:"group_field,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *MyMessage_SomeGroup) Reset()         { *m = MyMessage_SomeGroup{} }
func (m *MyMessage_SomeGroup) String() string { return proto.CompactTextString(m) }
func (*MyMessage_SomeGroup) ProtoMessage()    {}

func (m *MyMessage_SomeGroup) GetGroupField() int32 {
	if m != nil && m.GroupField != nil {
		return *m.GroupField
	}
	return 0
}

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

func (m *Ext) Reset()         { *m = Ext{} }
func (m *Ext) String() string { return proto.CompactTextString(m) }
func (*Ext) ProtoMessage()    {}

func (m *Ext) GetData() string {
	if m != nil && m.Data != nil {
		return *m.Data
	}
	return ""
}

var E_Ext_More = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessage)(nil),
	ExtensionType: (*Ext)(nil),
	Field:         103,
	Name:          "testdata.Ext.more",
	Tag:           "bytes,103,opt,name=more",
}

var E_Ext_Text = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessage)(nil),
	ExtensionType: (*string)(nil),
	Field:         104,
	Name:          "testdata.Ext.text",
	Tag:           "bytes,104,opt,name=text",
}

var E_Ext_Number = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         105,
	Name:          "testdata.Ext.number",
	Tag:           "varint,105,opt,name=number",
}

type DefaultsMessage struct {
	XXX_extensions   map[int32]proto.Extension `json:"-"`
	XXX_unrecognized []byte                    `json:"-"`
}

func (m *DefaultsMessage) Reset()         { *m = DefaultsMessage{} }
func (m *DefaultsMessage) String() string { return proto.CompactTextString(m) }
func (*DefaultsMessage) ProtoMessage()    {}

var extRange_DefaultsMessage = []proto.ExtensionRange{
	{100, 536870911},
}

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

type MyMessageSet struct {
	XXX_extensions   map[int32]proto.Extension `json:"-"`
	XXX_unrecognized []byte                    `json:"-"`
}

func (m *MyMessageSet) Reset()         { *m = MyMessageSet{} }
func (m *MyMessageSet) String() string { return proto.CompactTextString(m) }
func (*MyMessageSet) ProtoMessage()    {}

func (m *MyMessageSet) Marshal() ([]byte, error) {
	return proto.MarshalMessageSet(m.ExtensionMap())
}
func (m *MyMessageSet) Unmarshal(buf []byte) error {
	return proto.UnmarshalMessageSet(buf, m.ExtensionMap())
}
func (m *MyMessageSet) MarshalJSON() ([]byte, error) {
	return proto.MarshalMessageSetJSON(m.XXX_extensions)
}
func (m *MyMessageSet) UnmarshalJSON(buf []byte) error {
	return proto.UnmarshalMessageSetJSON(buf, m.XXX_extensions)
}

// ensure MyMessageSet satisfies proto.Marshaler and proto.Unmarshaler
var _ proto.Marshaler = (*MyMessageSet)(nil)
var _ proto.Unmarshaler = (*MyMessageSet)(nil)

var extRange_MyMessageSet = []proto.ExtensionRange{
	{100, 2147483646},
}

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

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

func (m *Empty) Reset()         { *m = Empty{} }
func (m *Empty) String() string { return proto.CompactTextString(m) }
func (*Empty) ProtoMessage()    {}

type MessageList struct {
	Message          []*MessageList_Message `protobuf:"group,1,rep,name=Message" json:"message,omitempty"`
	XXX_unrecognized []byte                 `json:"-"`
}

func (m *MessageList) Reset()         { *m = MessageList{} }
func (m *MessageList) String() string { return proto.CompactTextString(m) }
func (*MessageList) ProtoMessage()    {}

func (m *MessageList) GetMessage() []*MessageList_Message {
	if m != nil {
		return m.Message
	}
	return nil
}

type MessageList_Message struct {
	Name             *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"`
	Count            *int32  `protobuf:"varint,3,req,name=count" json:"count,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *MessageList_Message) Reset()         { *m = MessageList_Message{} }
func (m *MessageList_Message) String() string { return proto.CompactTextString(m) }
func (*MessageList_Message) ProtoMessage()    {}

func (m *MessageList_Message) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *MessageList_Message) GetCount() int32 {
	if m != nil && m.Count != nil {
		return *m.Count
	}
	return 0
}

type Strings struct {
	StringField      *string `protobuf:"bytes,1,opt,name=string_field" json:"string_field,omitempty"`
	BytesField       []byte  `protobuf:"bytes,2,opt,name=bytes_field" json:"bytes_field,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *Strings) Reset()         { *m = Strings{} }
func (m *Strings) String() string { return proto.CompactTextString(m) }
func (*Strings) ProtoMessage()    {}

func (m *Strings) GetStringField() string {
	if m != nil && m.StringField != nil {
		return *m.StringField
	}
	return ""
}

func (m *Strings) GetBytesField() []byte {
	if m != nil {
		return m.BytesField
	}
	return nil
}

type Defaults struct {
	// Default-valued fields of all basic types.
	// Same as GoTest, but copied here to make testing easier.
	F_Bool    *bool           `protobuf:"varint,1,opt,name=F_Bool,def=1" json:"F_Bool,omitempty"`
	F_Int32   *int32          `protobuf:"varint,2,opt,name=F_Int32,def=32" json:"F_Int32,omitempty"`
	F_Int64   *int64          `protobuf:"varint,3,opt,name=F_Int64,def=64" json:"F_Int64,omitempty"`
	F_Fixed32 *uint32         `protobuf:"fixed32,4,opt,name=F_Fixed32,def=320" json:"F_Fixed32,omitempty"`
	F_Fixed64 *uint64         `protobuf:"fixed64,5,opt,name=F_Fixed64,def=640" json:"F_Fixed64,omitempty"`
	F_Uint32  *uint32         `protobuf:"varint,6,opt,name=F_Uint32,def=3200" json:"F_Uint32,omitempty"`
	F_Uint64  *uint64         `protobuf:"varint,7,opt,name=F_Uint64,def=6400" json:"F_Uint64,omitempty"`
	F_Float   *float32        `protobuf:"fixed32,8,opt,name=F_Float,def=314159" json:"F_Float,omitempty"`
	F_Double  *float64        `protobuf:"fixed64,9,opt,name=F_Double,def=271828" json:"F_Double,omitempty"`
	F_String  *string         `protobuf:"bytes,10,opt,name=F_String,def=hello, \"world!\"\n" json:"F_String,omitempty"`
	F_Bytes   []byte          `protobuf:"bytes,11,opt,name=F_Bytes,def=Bignose" json:"F_Bytes,omitempty"`
	F_Sint32  *int32          `protobuf:"zigzag32,12,opt,name=F_Sint32,def=-32" json:"F_Sint32,omitempty"`
	F_Sint64  *int64          `protobuf:"zigzag64,13,opt,name=F_Sint64,def=-64" json:"F_Sint64,omitempty"`
	F_Enum    *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"`
	// More fields with crazy defaults.
	F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,def=inf" json:"F_Pinf,omitempty"`
	F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,def=-inf" json:"F_Ninf,omitempty"`
	F_Nan  *float32 `protobuf:"fixed32,17,opt,name=F_Nan,def=nan" json:"F_Nan,omitempty"`
	// Sub-message.
	Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"`
	// Redundant but explicit defaults.
	StrZero          *string `protobuf:"bytes,19,opt,name=str_zero,def=" json:"str_zero,omitempty"`
	XXX_unrecognized []byte  `json:"-"`
}

func (m *Defaults) Reset()         { *m = Defaults{} }
func (m *Defaults) String() string { return proto.CompactTextString(m) }
func (*Defaults) ProtoMessage()    {}

const Default_Defaults_F_Bool bool = true
const Default_Defaults_F_Int32 int32 = 32
const Default_Defaults_F_Int64 int64 = 64
const Default_Defaults_F_Fixed32 uint32 = 320
const Default_Defaults_F_Fixed64 uint64 = 640
const Default_Defaults_F_Uint32 uint32 = 3200
const Default_Defaults_F_Uint64 uint64 = 6400
const Default_Defaults_F_Float float32 = 314159
const Default_Defaults_F_Double float64 = 271828
const Default_Defaults_F_String string = "hello, \"world!\"\n"

var Default_Defaults_F_Bytes []byte = []byte("Bignose")

const Default_Defaults_F_Sint32 int32 = -32
const Default_Defaults_F_Sint64 int64 = -64
const Default_Defaults_F_Enum Defaults_Color = Defaults_GREEN

var Default_Defaults_F_Pinf float32 = float32(math.Inf(1))
var Default_Defaults_F_Ninf float32 = float32(math.Inf(-1))
var Default_Defaults_F_Nan float32 = float32(math.NaN())

func (m *Defaults) GetF_Bool() bool {
	if m != nil && m.F_Bool != nil {
		return *m.F_Bool
	}
	return Default_Defaults_F_Bool
}

func (m *Defaults) GetF_Int32() int32 {
	if m != nil && m.F_Int32 != nil {
		return *m.F_Int32
	}
	return Default_Defaults_F_Int32
}

func (m *Defaults) GetF_Int64() int64 {
	if m != nil && m.F_Int64 != nil {
		return *m.F_Int64
	}
	return Default_Defaults_F_Int64
}

func (m *Defaults) GetF_Fixed32() uint32 {
	if m != nil && m.F_Fixed32 != nil {
		return *m.F_Fixed32
	}
	return Default_Defaults_F_Fixed32
}

func (m *Defaults) GetF_Fixed64() uint64 {
	if m != nil && m.F_Fixed64 != nil {
		return *m.F_Fixed64
	}
	return Default_Defaults_F_Fixed64
}

func (m *Defaults) GetF_Uint32() uint32 {
	if m != nil && m.F_Uint32 != nil {
		return *m.F_Uint32
	}
	return Default_Defaults_F_Uint32
}

func (m *Defaults) GetF_Uint64() uint64 {
	if m != nil && m.F_Uint64 != nil {
		return *m.F_Uint64
	}
	return Default_Defaults_F_Uint64
}

func (m *Defaults) GetF_Float() float32 {
	if m != nil && m.F_Float != nil {
		return *m.F_Float
	}
	return Default_Defaults_F_Float
}

func (m *Defaults) GetF_Double() float64 {
	if m != nil && m.F_Double != nil {
		return *m.F_Double
	}
	return Default_Defaults_F_Double
}

func (m *Defaults) GetF_String() string {
	if m != nil && m.F_String != nil {
		return *m.F_String
	}
	return Default_Defaults_F_String
}

func (m *Defaults) GetF_Bytes() []byte {
	if m != nil && m.F_Bytes != nil {
		return m.F_Bytes
	}
	return append([]byte(nil), Default_Defaults_F_Bytes...)
}

func (m *Defaults) GetF_Sint32() int32 {
	if m != nil && m.F_Sint32 != nil {
		return *m.F_Sint32
	}
	return Default_Defaults_F_Sint32
}

func (m *Defaults) GetF_Sint64() int64 {
	if m != nil && m.F_Sint64 != nil {
		return *m.F_Sint64
	}
	return Default_Defaults_F_Sint64
}

func (m *Defaults) GetF_Enum() Defaults_Color {
	if m != nil && m.F_Enum != nil {
		return *m.F_Enum
	}
	return Default_Defaults_F_Enum
}

func (m *Defaults) GetF_Pinf() float32 {
	if m != nil && m.F_Pinf != nil {
		return *m.F_Pinf
	}
	return Default_Defaults_F_Pinf
}

func (m *Defaults) GetF_Ninf() float32 {
	if m != nil && m.F_Ninf != nil {
		return *m.F_Ninf
	}
	return Default_Defaults_F_Ninf
}

func (m *Defaults) GetF_Nan() float32 {
	if m != nil && m.F_Nan != nil {
		return *m.F_Nan
	}
	return Default_Defaults_F_Nan
}

func (m *Defaults) GetSub() *SubDefaults {
	if m != nil {
		return m.Sub
	}
	return nil
}

func (m *Defaults) GetStrZero() string {
	if m != nil && m.StrZero != nil {
		return *m.StrZero
	}
	return ""
}

type SubDefaults struct {
	N                *int64 `protobuf:"varint,1,opt,name=n,def=7" json:"n,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *SubDefaults) Reset()         { *m = SubDefaults{} }
func (m *SubDefaults) String() string { return proto.CompactTextString(m) }
func (*SubDefaults) ProtoMessage()    {}

const Default_SubDefaults_N int64 = 7

func (m *SubDefaults) GetN() int64 {
	if m != nil && m.N != nil {
		return *m.N
	}
	return Default_SubDefaults_N
}

type RepeatedEnum struct {
	Color            []RepeatedEnum_Color `protobuf:"varint,1,rep,name=color,enum=testdata.RepeatedEnum_Color" json:"color,omitempty"`
	XXX_unrecognized []byte               `json:"-"`
}

func (m *RepeatedEnum) Reset()         { *m = RepeatedEnum{} }
func (m *RepeatedEnum) String() string { return proto.CompactTextString(m) }
func (*RepeatedEnum) ProtoMessage()    {}

func (m *RepeatedEnum) GetColor() []RepeatedEnum_Color {
	if m != nil {
		return m.Color
	}
	return nil
}

type MoreRepeated struct {
	Bools            []bool   `protobuf:"varint,1,rep,name=bools" json:"bools,omitempty"`
	BoolsPacked      []bool   `protobuf:"varint,2,rep,packed,name=bools_packed" json:"bools_packed,omitempty"`
	Ints             []int32  `protobuf:"varint,3,rep,name=ints" json:"ints,omitempty"`
	IntsPacked       []int32  `protobuf:"varint,4,rep,packed,name=ints_packed" json:"ints_packed,omitempty"`
	Int64SPacked     []int64  `protobuf:"varint,7,rep,packed,name=int64s_packed" json:"int64s_packed,omitempty"`
	Strings          []string `protobuf:"bytes,5,rep,name=strings" json:"strings,omitempty"`
	Fixeds           []uint32 `protobuf:"fixed32,6,rep,name=fixeds" json:"fixeds,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

func (m *MoreRepeated) Reset()         { *m = MoreRepeated{} }
func (m *MoreRepeated) String() string { return proto.CompactTextString(m) }
func (*MoreRepeated) ProtoMessage()    {}

func (m *MoreRepeated) GetBools() []bool {
	if m != nil {
		return m.Bools
	}
	return nil
}

func (m *MoreRepeated) GetBoolsPacked() []bool {
	if m != nil {
		return m.BoolsPacked
	}
	return nil
}

func (m *MoreRepeated) GetInts() []int32 {
	if m != nil {
		return m.Ints
	}
	return nil
}

func (m *MoreRepeated) GetIntsPacked() []int32 {
	if m != nil {
		return m.IntsPacked
	}
	return nil
}

func (m *MoreRepeated) GetInt64SPacked() []int64 {
	if m != nil {
		return m.Int64SPacked
	}
	return nil
}

func (m *MoreRepeated) GetStrings() []string {
	if m != nil {
		return m.Strings
	}
	return nil
}

func (m *MoreRepeated) GetFixeds() []uint32 {
	if m != nil {
		return m.Fixeds
	}
	return nil
}

type GroupOld struct {
	G                *GroupOld_G `protobuf:"group,101,opt,name=G" json:"g,omitempty"`
	XXX_unrecognized []byte      `json:"-"`
}

func (m *GroupOld) Reset()         { *m = GroupOld{} }
func (m *GroupOld) String() string { return proto.CompactTextString(m) }
func (*GroupOld) ProtoMessage()    {}

func (m *GroupOld) GetG() *GroupOld_G {
	if m != nil {
		return m.G
	}
	return nil
}

type GroupOld_G struct {
	X                *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *GroupOld_G) Reset()         { *m = GroupOld_G{} }
func (m *GroupOld_G) String() string { return proto.CompactTextString(m) }
func (*GroupOld_G) ProtoMessage()    {}

func (m *GroupOld_G) GetX() int32 {
	if m != nil && m.X != nil {
		return *m.X
	}
	return 0
}

type GroupNew struct {
	G                *GroupNew_G `protobuf:"group,101,opt,name=G" json:"g,omitempty"`
	XXX_unrecognized []byte      `json:"-"`
}

func (m *GroupNew) Reset()         { *m = GroupNew{} }
func (m *GroupNew) String() string { return proto.CompactTextString(m) }
func (*GroupNew) ProtoMessage()    {}

func (m *GroupNew) GetG() *GroupNew_G {
	if m != nil {
		return m.G
	}
	return nil
}

type GroupNew_G struct {
	X                *int32 `protobuf:"varint,2,opt,name=x" json:"x,omitempty"`
	Y                *int32 `protobuf:"varint,3,opt,name=y" json:"y,omitempty"`
	XXX_unrecognized []byte `json:"-"`
}

func (m *GroupNew_G) Reset()         { *m = GroupNew_G{} }
func (m *GroupNew_G) String() string { return proto.CompactTextString(m) }
func (*GroupNew_G) ProtoMessage()    {}

func (m *GroupNew_G) GetX() int32 {
	if m != nil && m.X != nil {
		return *m.X
	}
	return 0
}

func (m *GroupNew_G) GetY() int32 {
	if m != nil && m.Y != nil {
		return *m.Y
	}
	return 0
}

type FloatingPoint struct {
	F                *float64 `protobuf:"fixed64,1,req,name=f" json:"f,omitempty"`
	XXX_unrecognized []byte   `json:"-"`
}

func (m *FloatingPoint) Reset()         { *m = FloatingPoint{} }
func (m *FloatingPoint) String() string { return proto.CompactTextString(m) }
func (*FloatingPoint) ProtoMessage()    {}

func (m *FloatingPoint) GetF() float64 {
	if m != nil && m.F != nil {
		return *m.F
	}
	return 0
}

type MessageWithMap struct {
	NameMapping      map[int32]string         `protobuf:"bytes,1,rep,name=name_mapping" json:"name_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	MsgMapping       map[int64]*FloatingPoint `protobuf:"bytes,2,rep,name=msg_mapping" json:"msg_mapping,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	ByteMapping      map[bool][]byte          `protobuf:"bytes,3,rep,name=byte_mapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	StrToStr         map[string]string        `protobuf:"bytes,4,rep,name=str_to_str" json:"str_to_str,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	XXX_unrecognized []byte                   `json:"-"`
}

func (m *MessageWithMap) Reset()         { *m = MessageWithMap{} }
func (m *MessageWithMap) String() string { return proto.CompactTextString(m) }
func (*MessageWithMap) ProtoMessage()    {}

func (m *MessageWithMap) GetNameMapping() map[int32]string {
	if m != nil {
		return m.NameMapping
	}
	return nil
}

func (m *MessageWithMap) GetMsgMapping() map[int64]*FloatingPoint {
	if m != nil {
		return m.MsgMapping
	}
	return nil
}

func (m *MessageWithMap) GetByteMapping() map[bool][]byte {
	if m != nil {
		return m.ByteMapping
	}
	return nil
}

func (m *MessageWithMap) GetStrToStr() map[string]string {
	if m != nil {
		return m.StrToStr
	}
	return nil
}

type Communique struct {
	MakeMeCry *bool `protobuf:"varint,1,opt,name=make_me_cry" json:"make_me_cry,omitempty"`
	// This is a oneof, called "union".
	//
	// Types that are valid to be assigned to Union:
	//	*Communique_Number
	//	*Communique_Name
	//	*Communique_Data
	//	*Communique_TempC
	//	*Communique_Col
	//	*Communique_Msg
	Union            isCommunique_Union `protobuf_oneof:"union"`
	XXX_unrecognized []byte             `json:"-"`
}

func (m *Communique) Reset()         { *m = Communique{} }
func (m *Communique) String() string { return proto.CompactTextString(m) }
func (*Communique) ProtoMessage()    {}

type isCommunique_Union interface {
	isCommunique_Union()
}

type Communique_Number struct {
	Number int32 `protobuf:"varint,5,opt,name=number,oneof"`
}
type Communique_Name struct {
	Name string `protobuf:"bytes,6,opt,name=name,oneof"`
}
type Communique_Data struct {
	Data []byte `protobuf:"bytes,7,opt,name=data,oneof"`
}
type Communique_TempC struct {
	TempC float64 `protobuf:"fixed64,8,opt,name=temp_c,oneof"`
}
type Communique_Col struct {
	Col MyMessage_Color `protobuf:"varint,9,opt,name=col,enum=testdata.MyMessage_Color,oneof"`
}
type Communique_Msg struct {
	Msg *Strings `protobuf:"bytes,10,opt,name=msg,oneof"`
}

func (*Communique_Number) isCommunique_Union() {}
func (*Communique_Name) isCommunique_Union()   {}
func (*Communique_Data) isCommunique_Union()   {}
func (*Communique_TempC) isCommunique_Union()  {}
func (*Communique_Col) isCommunique_Union()    {}
func (*Communique_Msg) isCommunique_Union()    {}

func (m *Communique) GetUnion() isCommunique_Union {
	if m != nil {
		return m.Union
	}
	return nil
}

func (m *Communique) GetMakeMeCry() bool {
	if m != nil && m.MakeMeCry != nil {
		return *m.MakeMeCry
	}
	return false
}

func (m *Communique) GetNumber() int32 {
	if x, ok := m.GetUnion().(*Communique_Number); ok {
		return x.Number
	}
	return 0
}

func (m *Communique) GetName() string {
	if x, ok := m.GetUnion().(*Communique_Name); ok {
		return x.Name
	}
	return ""
}

func (m *Communique) GetData() []byte {
	if x, ok := m.GetUnion().(*Communique_Data); ok {
		return x.Data
	}
	return nil
}

func (m *Communique) GetTempC() float64 {
	if x, ok := m.GetUnion().(*Communique_TempC); ok {
		return x.TempC
	}
	return 0
}

func (m *Communique) GetCol() MyMessage_Color {
	if x, ok := m.GetUnion().(*Communique_Col); ok {
		return x.Col
	}
	return MyMessage_RED
}

func (m *Communique) GetMsg() *Strings {
	if x, ok := m.GetUnion().(*Communique_Msg); ok {
		return x.Msg
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*Communique) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), []interface{}) {
	return _Communique_OneofMarshaler, _Communique_OneofUnmarshaler, []interface{}{
		(*Communique_Number)(nil),
		(*Communique_Name)(nil),
		(*Communique_Data)(nil),
		(*Communique_TempC)(nil),
		(*Communique_Col)(nil),
		(*Communique_Msg)(nil),
	}
}

func _Communique_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*Communique)
	// union
	switch x := m.Union.(type) {
	case *Communique_Number:
		_ = b.EncodeVarint(5<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Number))
	case *Communique_Name:
		_ = b.EncodeVarint(6<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.Name)
	case *Communique_Data:
		_ = b.EncodeVarint(7<<3 | proto.WireBytes)
		_ = b.EncodeRawBytes(x.Data)
	case *Communique_TempC:
		_ = b.EncodeVarint(8<<3 | proto.WireFixed64)
		_ = b.EncodeFixed64(math.Float64bits(x.TempC))
	case *Communique_Col:
		_ = b.EncodeVarint(9<<3 | proto.WireVarint)
		_ = b.EncodeVarint(uint64(x.Col))
	case *Communique_Msg:
		_ = b.EncodeVarint(10<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Msg); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("Communique.Union has unexpected type %T", x)
	}
	return nil
}

func _Communique_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*Communique)
	switch tag {
	case 5: // union.number
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Union = &Communique_Number{int32(x)}
		return true, err
	case 6: // union.name
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.Union = &Communique_Name{x}
		return true, err
	case 7: // union.data
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeRawBytes(true)
		m.Union = &Communique_Data{x}
		return true, err
	case 8: // union.temp_c
		if wire != proto.WireFixed64 {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeFixed64()
		m.Union = &Communique_TempC{math.Float64frombits(x)}
		return true, err
	case 9: // union.col
		if wire != proto.WireVarint {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeVarint()
		m.Union = &Communique_Col{MyMessage_Color(x)}
		return true, err
	case 10: // union.msg
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(Strings)
		err := b.DecodeMessage(msg)
		m.Union = &Communique_Msg{msg}
		return true, err
	default:
		return false, nil
	}
}

var E_Greeting = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessage)(nil),
	ExtensionType: ([]string)(nil),
	Field:         106,
	Name:          "testdata.greeting",
	Tag:           "bytes,106,rep,name=greeting",
}

var E_NoDefaultDouble = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*float64)(nil),
	Field:         101,
	Name:          "testdata.no_default_double",
	Tag:           "fixed64,101,opt,name=no_default_double",
}

var E_NoDefaultFloat = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*float32)(nil),
	Field:         102,
	Name:          "testdata.no_default_float",
	Tag:           "fixed32,102,opt,name=no_default_float",
}

var E_NoDefaultInt32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         103,
	Name:          "testdata.no_default_int32",
	Tag:           "varint,103,opt,name=no_default_int32",
}

var E_NoDefaultInt64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         104,
	Name:          "testdata.no_default_int64",
	Tag:           "varint,104,opt,name=no_default_int64",
}

var E_NoDefaultUint32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         105,
	Name:          "testdata.no_default_uint32",
	Tag:           "varint,105,opt,name=no_default_uint32",
}

var E_NoDefaultUint64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         106,
	Name:          "testdata.no_default_uint64",
	Tag:           "varint,106,opt,name=no_default_uint64",
}

var E_NoDefaultSint32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         107,
	Name:          "testdata.no_default_sint32",
	Tag:           "zigzag32,107,opt,name=no_default_sint32",
}

var E_NoDefaultSint64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         108,
	Name:          "testdata.no_default_sint64",
	Tag:           "zigzag64,108,opt,name=no_default_sint64",
}

var E_NoDefaultFixed32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         109,
	Name:          "testdata.no_default_fixed32",
	Tag:           "fixed32,109,opt,name=no_default_fixed32",
}

var E_NoDefaultFixed64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         110,
	Name:          "testdata.no_default_fixed64",
	Tag:           "fixed64,110,opt,name=no_default_fixed64",
}

var E_NoDefaultSfixed32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         111,
	Name:          "testdata.no_default_sfixed32",
	Tag:           "fixed32,111,opt,name=no_default_sfixed32",
}

var E_NoDefaultSfixed64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         112,
	Name:          "testdata.no_default_sfixed64",
	Tag:           "fixed64,112,opt,name=no_default_sfixed64",
}

var E_NoDefaultBool = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*bool)(nil),
	Field:         113,
	Name:          "testdata.no_default_bool",
	Tag:           "varint,113,opt,name=no_default_bool",
}

var E_NoDefaultString = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*string)(nil),
	Field:         114,
	Name:          "testdata.no_default_string",
	Tag:           "bytes,114,opt,name=no_default_string",
}

var E_NoDefaultBytes = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: ([]byte)(nil),
	Field:         115,
	Name:          "testdata.no_default_bytes",
	Tag:           "bytes,115,opt,name=no_default_bytes",
}

var E_NoDefaultEnum = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil),
	Field:         116,
	Name:          "testdata.no_default_enum",
	Tag:           "varint,116,opt,name=no_default_enum,enum=testdata.DefaultsMessage_DefaultsEnum",
}

var E_DefaultDouble = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*float64)(nil),
	Field:         201,
	Name:          "testdata.default_double",
	Tag:           "fixed64,201,opt,name=default_double,def=3.1415",
}

var E_DefaultFloat = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*float32)(nil),
	Field:         202,
	Name:          "testdata.default_float",
	Tag:           "fixed32,202,opt,name=default_float,def=3.14",
}

var E_DefaultInt32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         203,
	Name:          "testdata.default_int32",
	Tag:           "varint,203,opt,name=default_int32,def=42",
}

var E_DefaultInt64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         204,
	Name:          "testdata.default_int64",
	Tag:           "varint,204,opt,name=default_int64,def=43",
}

var E_DefaultUint32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         205,
	Name:          "testdata.default_uint32",
	Tag:           "varint,205,opt,name=default_uint32,def=44",
}

var E_DefaultUint64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         206,
	Name:          "testdata.default_uint64",
	Tag:           "varint,206,opt,name=default_uint64,def=45",
}

var E_DefaultSint32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         207,
	Name:          "testdata.default_sint32",
	Tag:           "zigzag32,207,opt,name=default_sint32,def=46",
}

var E_DefaultSint64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         208,
	Name:          "testdata.default_sint64",
	Tag:           "zigzag64,208,opt,name=default_sint64,def=47",
}

var E_DefaultFixed32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint32)(nil),
	Field:         209,
	Name:          "testdata.default_fixed32",
	Tag:           "fixed32,209,opt,name=default_fixed32,def=48",
}

var E_DefaultFixed64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*uint64)(nil),
	Field:         210,
	Name:          "testdata.default_fixed64",
	Tag:           "fixed64,210,opt,name=default_fixed64,def=49",
}

var E_DefaultSfixed32 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int32)(nil),
	Field:         211,
	Name:          "testdata.default_sfixed32",
	Tag:           "fixed32,211,opt,name=default_sfixed32,def=50",
}

var E_DefaultSfixed64 = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*int64)(nil),
	Field:         212,
	Name:          "testdata.default_sfixed64",
	Tag:           "fixed64,212,opt,name=default_sfixed64,def=51",
}

var E_DefaultBool = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*bool)(nil),
	Field:         213,
	Name:          "testdata.default_bool",
	Tag:           "varint,213,opt,name=default_bool,def=1",
}

var E_DefaultString = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*string)(nil),
	Field:         214,
	Name:          "testdata.default_string",
	Tag:           "bytes,214,opt,name=default_string,def=Hello, string",
}

var E_DefaultBytes = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: ([]byte)(nil),
	Field:         215,
	Name:          "testdata.default_bytes",
	Tag:           "bytes,215,opt,name=default_bytes,def=Hello, bytes",
}

var E_DefaultEnum = &proto.ExtensionDesc{
	ExtendedType:  (*DefaultsMessage)(nil),
	ExtensionType: (*DefaultsMessage_DefaultsEnum)(nil),
	Field:         216,
	Name:          "testdata.default_enum",
	Tag:           "varint,216,opt,name=default_enum,enum=testdata.DefaultsMessage_DefaultsEnum,def=1",
}

var E_X201 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         201,
	Name:          "testdata.x201",
	Tag:           "bytes,201,opt,name=x201",
}

var E_X202 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         202,
	Name:          "testdata.x202",
	Tag:           "bytes,202,opt,name=x202",
}

var E_X203 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         203,
	Name:          "testdata.x203",
	Tag:           "bytes,203,opt,name=x203",
}

var E_X204 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         204,
	Name:          "testdata.x204",
	Tag:           "bytes,204,opt,name=x204",
}

var E_X205 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         205,
	Name:          "testdata.x205",
	Tag:           "bytes,205,opt,name=x205",
}

var E_X206 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         206,
	Name:          "testdata.x206",
	Tag:           "bytes,206,opt,name=x206",
}

var E_X207 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         207,
	Name:          "testdata.x207",
	Tag:           "bytes,207,opt,name=x207",
}

var E_X208 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         208,
	Name:          "testdata.x208",
	Tag:           "bytes,208,opt,name=x208",
}

var E_X209 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         209,
	Name:          "testdata.x209",
	Tag:           "bytes,209,opt,name=x209",
}

var E_X210 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         210,
	Name:          "testdata.x210",
	Tag:           "bytes,210,opt,name=x210",
}

var E_X211 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         211,
	Name:          "testdata.x211",
	Tag:           "bytes,211,opt,name=x211",
}

var E_X212 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         212,
	Name:          "testdata.x212",
	Tag:           "bytes,212,opt,name=x212",
}

var E_X213 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         213,
	Name:          "testdata.x213",
	Tag:           "bytes,213,opt,name=x213",
}

var E_X214 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         214,
	Name:          "testdata.x214",
	Tag:           "bytes,214,opt,name=x214",
}

var E_X215 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         215,
	Name:          "testdata.x215",
	Tag:           "bytes,215,opt,name=x215",
}

var E_X216 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         216,
	Name:          "testdata.x216",
	Tag:           "bytes,216,opt,name=x216",
}

var E_X217 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         217,
	Name:          "testdata.x217",
	Tag:           "bytes,217,opt,name=x217",
}

var E_X218 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         218,
	Name:          "testdata.x218",
	Tag:           "bytes,218,opt,name=x218",
}

var E_X219 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         219,
	Name:          "testdata.x219",
	Tag:           "bytes,219,opt,name=x219",
}

var E_X220 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         220,
	Name:          "testdata.x220",
	Tag:           "bytes,220,opt,name=x220",
}

var E_X221 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         221,
	Name:          "testdata.x221",
	Tag:           "bytes,221,opt,name=x221",
}

var E_X222 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         222,
	Name:          "testdata.x222",
	Tag:           "bytes,222,opt,name=x222",
}

var E_X223 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         223,
	Name:          "testdata.x223",
	Tag:           "bytes,223,opt,name=x223",
}

var E_X224 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         224,
	Name:          "testdata.x224",
	Tag:           "bytes,224,opt,name=x224",
}

var E_X225 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         225,
	Name:          "testdata.x225",
	Tag:           "bytes,225,opt,name=x225",
}

var E_X226 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         226,
	Name:          "testdata.x226",
	Tag:           "bytes,226,opt,name=x226",
}

var E_X227 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         227,
	Name:          "testdata.x227",
	Tag:           "bytes,227,opt,name=x227",
}

var E_X228 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         228,
	Name:          "testdata.x228",
	Tag:           "bytes,228,opt,name=x228",
}

var E_X229 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         229,
	Name:          "testdata.x229",
	Tag:           "bytes,229,opt,name=x229",
}

var E_X230 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         230,
	Name:          "testdata.x230",
	Tag:           "bytes,230,opt,name=x230",
}

var E_X231 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         231,
	Name:          "testdata.x231",
	Tag:           "bytes,231,opt,name=x231",
}

var E_X232 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         232,
	Name:          "testdata.x232",
	Tag:           "bytes,232,opt,name=x232",
}

var E_X233 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         233,
	Name:          "testdata.x233",
	Tag:           "bytes,233,opt,name=x233",
}

var E_X234 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         234,
	Name:          "testdata.x234",
	Tag:           "bytes,234,opt,name=x234",
}

var E_X235 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         235,
	Name:          "testdata.x235",
	Tag:           "bytes,235,opt,name=x235",
}

var E_X236 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         236,
	Name:          "testdata.x236",
	Tag:           "bytes,236,opt,name=x236",
}

var E_X237 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         237,
	Name:          "testdata.x237",
	Tag:           "bytes,237,opt,name=x237",
}

var E_X238 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         238,
	Name:          "testdata.x238",
	Tag:           "bytes,238,opt,name=x238",
}

var E_X239 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         239,
	Name:          "testdata.x239",
	Tag:           "bytes,239,opt,name=x239",
}

var E_X240 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         240,
	Name:          "testdata.x240",
	Tag:           "bytes,240,opt,name=x240",
}

var E_X241 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         241,
	Name:          "testdata.x241",
	Tag:           "bytes,241,opt,name=x241",
}

var E_X242 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         242,
	Name:          "testdata.x242",
	Tag:           "bytes,242,opt,name=x242",
}

var E_X243 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         243,
	Name:          "testdata.x243",
	Tag:           "bytes,243,opt,name=x243",
}

var E_X244 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         244,
	Name:          "testdata.x244",
	Tag:           "bytes,244,opt,name=x244",
}

var E_X245 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         245,
	Name:          "testdata.x245",
	Tag:           "bytes,245,opt,name=x245",
}

var E_X246 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         246,
	Name:          "testdata.x246",
	Tag:           "bytes,246,opt,name=x246",
}

var E_X247 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         247,
	Name:          "testdata.x247",
	Tag:           "bytes,247,opt,name=x247",
}

var E_X248 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         248,
	Name:          "testdata.x248",
	Tag:           "bytes,248,opt,name=x248",
}

var E_X249 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         249,
	Name:          "testdata.x249",
	Tag:           "bytes,249,opt,name=x249",
}

var E_X250 = &proto.ExtensionDesc{
	ExtendedType:  (*MyMessageSet)(nil),
	ExtensionType: (*Empty)(nil),
	Field:         250,
	Name:          "testdata.x250",
	Tag:           "bytes,250,opt,name=x250",
}

func init() {
	proto.RegisterType((*GoEnum)(nil), "testdata.GoEnum")
	proto.RegisterType((*GoTestField)(nil), "testdata.GoTestField")
	proto.RegisterType((*GoTest)(nil), "testdata.GoTest")
	proto.RegisterType((*GoTest_RequiredGroup)(nil), "testdata.GoTest.RequiredGroup")
	proto.RegisterType((*GoTest_RepeatedGroup)(nil), "testdata.GoTest.RepeatedGroup")
	proto.RegisterType((*GoTest_OptionalGroup)(nil), "testdata.GoTest.OptionalGroup")
	proto.RegisterType((*GoSkipTest)(nil), "testdata.GoSkipTest")
	proto.RegisterType((*GoSkipTest_SkipGroup)(nil), "testdata.GoSkipTest.SkipGroup")
	proto.RegisterType((*NonPackedTest)(nil), "testdata.NonPackedTest")
	proto.RegisterType((*PackedTest)(nil), "testdata.PackedTest")
	proto.RegisterType((*MaxTag)(nil), "testdata.MaxTag")
	proto.RegisterType((*OldMessage)(nil), "testdata.OldMessage")
	proto.RegisterType((*OldMessage_Nested)(nil), "testdata.OldMessage.Nested")
	proto.RegisterType((*NewMessage)(nil), "testdata.NewMessage")
	proto.RegisterType((*NewMessage_Nested)(nil), "testdata.NewMessage.Nested")
	proto.RegisterType((*InnerMessage)(nil), "testdata.InnerMessage")
	proto.RegisterType((*OtherMessage)(nil), "testdata.OtherMessage")
	proto.RegisterType((*MyMessage)(nil), "testdata.MyMessage")
	proto.RegisterType((*MyMessage_SomeGroup)(nil), "testdata.MyMessage.SomeGroup")
	proto.RegisterType((*Ext)(nil), "testdata.Ext")
	proto.RegisterType((*DefaultsMessage)(nil), "testdata.DefaultsMessage")
	proto.RegisterType((*MyMessageSet)(nil), "testdata.MyMessageSet")
	proto.RegisterType((*Empty)(nil), "testdata.Empty")
	proto.RegisterType((*MessageList)(nil), "testdata.MessageList")
	proto.RegisterType((*MessageList_Message)(nil), "testdata.MessageList.Message")
	proto.RegisterType((*Strings)(nil), "testdata.Strings")
	proto.RegisterType((*Defaults)(nil), "testdata.Defaults")
	proto.RegisterType((*SubDefaults)(nil), "testdata.SubDefaults")
	proto.RegisterType((*RepeatedEnum)(nil), "testdata.RepeatedEnum")
	proto.RegisterType((*MoreRepeated)(nil), "testdata.MoreRepeated")
	proto.RegisterType((*GroupOld)(nil), "testdata.GroupOld")
	proto.RegisterType((*GroupOld_G)(nil), "testdata.GroupOld.G")
	proto.RegisterType((*GroupNew)(nil), "testdata.GroupNew")
	proto.RegisterType((*GroupNew_G)(nil), "testdata.GroupNew.G")
	proto.RegisterType((*FloatingPoint)(nil), "testdata.FloatingPoint")
	proto.RegisterType((*MessageWithMap)(nil), "testdata.MessageWithMap")
	proto.RegisterType((*Communique)(nil), "testdata.Communique")
	proto.RegisterEnum("testdata.FOO", FOO_name, FOO_value)
	proto.RegisterEnum("testdata.GoTest_KIND", GoTest_KIND_name, GoTest_KIND_value)
	proto.RegisterEnum("testdata.MyMessage_Color", MyMessage_Color_name, MyMessage_Color_value)
	proto.RegisterEnum("testdata.DefaultsMessage_DefaultsEnum", DefaultsMessage_DefaultsEnum_name, DefaultsMessage_DefaultsEnum_value)
	proto.RegisterEnum("testdata.Defaults_Color", Defaults_Color_name, Defaults_Color_value)
	proto.RegisterEnum("testdata.RepeatedEnum_Color", RepeatedEnum_Color_name, RepeatedEnum_Color_value)
	proto.RegisterExtension(E_Ext_More)
	proto.RegisterExtension(E_Ext_Text)
	proto.RegisterExtension(E_Ext_Number)
	proto.RegisterExtension(E_Greeting)
	proto.RegisterExtension(E_NoDefaultDouble)
	proto.RegisterExtension(E_NoDefaultFloat)
	proto.RegisterExtension(E_NoDefaultInt32)
	proto.RegisterExtension(E_NoDefaultInt64)
	proto.RegisterExtension(E_NoDefaultUint32)
	proto.RegisterExtension(E_NoDefaultUint64)
	proto.RegisterExtension(E_NoDefaultSint32)
	proto.RegisterExtension(E_NoDefaultSint64)
	proto.RegisterExtension(E_NoDefaultFixed32)
	proto.RegisterExtension(E_NoDefaultFixed64)
	proto.RegisterExtension(E_NoDefaultSfixed32)
	proto.RegisterExtension(E_NoDefaultSfixed64)
	proto.RegisterExtension(E_NoDefaultBool)
	proto.RegisterExtension(E_NoDefaultString)
	proto.RegisterExtension(E_NoDefaultBytes)
	proto.RegisterExtension(E_NoDefaultEnum)
	proto.RegisterExtension(E_DefaultDouble)
	proto.RegisterExtension(E_DefaultFloat)
	proto.RegisterExtension(E_DefaultInt32)
	proto.RegisterExtension(E_DefaultInt64)
	proto.RegisterExtension(E_DefaultUint32)
	proto.RegisterExtension(E_DefaultUint64)
	proto.RegisterExtension(E_DefaultSint32)
	proto.RegisterExtension(E_DefaultSint64)
	proto.RegisterExtension(E_DefaultFixed32)
	proto.RegisterExtension(E_DefaultFixed64)
	proto.RegisterExtension(E_DefaultSfixed32)
	proto.RegisterExtension(E_DefaultSfixed64)
	proto.RegisterExtension(E_DefaultBool)
	proto.RegisterExtension(E_DefaultString)
	proto.RegisterExtension(E_DefaultBytes)
	proto.RegisterExtension(E_DefaultEnum)
	proto.RegisterExtension(E_X201)
	proto.RegisterExtension(E_X202)
	proto.RegisterExtension(E_X203)
	proto.RegisterExtension(E_X204)
	proto.RegisterExtension(E_X205)
	proto.RegisterExtension(E_X206)
	proto.RegisterExtension(E_X207)
	proto.RegisterExtension(E_X208)
	proto.RegisterExtension(E_X209)
	proto.RegisterExtension(E_X210)
	proto.RegisterExtension(E_X211)
	proto.RegisterExtension(E_X212)
	proto.RegisterExtension(E_X213)
	proto.RegisterExtension(E_X214)
	proto.RegisterExtension(E_X215)
	proto.RegisterExtension(E_X216)
	proto.RegisterExtension(E_X217)
	proto.RegisterExtension(E_X218)
	proto.RegisterExtension(E_X219)
	proto.RegisterExtension(E_X220)
	proto.RegisterExtension(E_X221)
	proto.RegisterExtension(E_X222)
	proto.RegisterExtension(E_X223)
	proto.RegisterExtension(E_X224)
	proto.RegisterExtension(E_X225)
	proto.RegisterExtension(E_X226)
	proto.RegisterExtension(E_X227)
	proto.RegisterExtension(E_X228)
	proto.RegisterExtension(E_X229)
	proto.RegisterExtension(E_X230)
	proto.RegisterExtension(E_X231)
	proto.RegisterExtension(E_X232)
	proto.RegisterExtension(E_X233)
	proto.RegisterExtension(E_X234)
	proto.RegisterExtension(E_X235)
	proto.RegisterExtension(E_X236)
	proto.RegisterExtension(E_X237)
	proto.RegisterExtension(E_X238)
	proto.RegisterExtension(E_X239)
	proto.RegisterExtension(E_X240)
	proto.RegisterExtension(E_X241)
	proto.RegisterExtension(E_X242)
	proto.RegisterExtension(E_X243)
	proto.RegisterExtension(E_X244)
	proto.RegisterExtension(E_X245)
	proto.RegisterExtension(E_X246)
	proto.RegisterExtension(E_X247)
	proto.RegisterExtension(E_X248)
	proto.RegisterExtension(E_X249)
	proto.RegisterExtension(E_X250)
}
