// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: envoy/api/v2/core/grpc_service.proto

package core

import proto "github.com/gogo/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "github.com/gogo/protobuf/gogoproto"
import types "github.com/gogo/protobuf/types"
import _ "github.com/lyft/protoc-gen-validate/validate"

import bytes "bytes"

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.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion2 // please upgrade the proto package

// gRPC service configuration. This is used by :ref:`ApiConfigSource
// <envoy_api_msg_core.ApiConfigSource>` and filter configurations.
type GrpcService struct {
	// Types that are valid to be assigned to TargetSpecifier:
	//	*GrpcService_EnvoyGrpc_
	//	*GrpcService_GoogleGrpc_
	TargetSpecifier isGrpcService_TargetSpecifier `protobuf_oneof:"target_specifier"`
	// The timeout for the gRPC request. This is the timeout for a specific
	// request.
	Timeout *types.Duration `protobuf:"bytes,3,opt,name=timeout" json:"timeout,omitempty"`
	// Additional metadata to include in streams initiated to the GrpcService.
	// This can be used for scenarios in which additional ad hoc authorization
	// headers (e.g. `x-foo-bar: baz-key`) are to be injected.
	InitialMetadata      []*HeaderValue `protobuf:"bytes,5,rep,name=initial_metadata,json=initialMetadata" json:"initial_metadata,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *GrpcService) Reset()         { *m = GrpcService{} }
func (m *GrpcService) String() string { return proto.CompactTextString(m) }
func (*GrpcService) ProtoMessage()    {}
func (*GrpcService) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0}
}
func (m *GrpcService) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService.Merge(dst, src)
}
func (m *GrpcService) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService proto.InternalMessageInfo

type isGrpcService_TargetSpecifier interface {
	isGrpcService_TargetSpecifier()
	Equal(interface{}) bool
	MarshalTo([]byte) (int, error)
	Size() int
}

type GrpcService_EnvoyGrpc_ struct {
	EnvoyGrpc *GrpcService_EnvoyGrpc `protobuf:"bytes,1,opt,name=envoy_grpc,json=envoyGrpc,oneof"`
}
type GrpcService_GoogleGrpc_ struct {
	GoogleGrpc *GrpcService_GoogleGrpc `protobuf:"bytes,2,opt,name=google_grpc,json=googleGrpc,oneof"`
}

func (*GrpcService_EnvoyGrpc_) isGrpcService_TargetSpecifier()  {}
func (*GrpcService_GoogleGrpc_) isGrpcService_TargetSpecifier() {}

func (m *GrpcService) GetTargetSpecifier() isGrpcService_TargetSpecifier {
	if m != nil {
		return m.TargetSpecifier
	}
	return nil
}

func (m *GrpcService) GetEnvoyGrpc() *GrpcService_EnvoyGrpc {
	if x, ok := m.GetTargetSpecifier().(*GrpcService_EnvoyGrpc_); ok {
		return x.EnvoyGrpc
	}
	return nil
}

func (m *GrpcService) GetGoogleGrpc() *GrpcService_GoogleGrpc {
	if x, ok := m.GetTargetSpecifier().(*GrpcService_GoogleGrpc_); ok {
		return x.GoogleGrpc
	}
	return nil
}

func (m *GrpcService) GetTimeout() *types.Duration {
	if m != nil {
		return m.Timeout
	}
	return nil
}

func (m *GrpcService) GetInitialMetadata() []*HeaderValue {
	if m != nil {
		return m.InitialMetadata
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*GrpcService) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _GrpcService_OneofMarshaler, _GrpcService_OneofUnmarshaler, _GrpcService_OneofSizer, []interface{}{
		(*GrpcService_EnvoyGrpc_)(nil),
		(*GrpcService_GoogleGrpc_)(nil),
	}
}

func _GrpcService_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*GrpcService)
	// target_specifier
	switch x := m.TargetSpecifier.(type) {
	case *GrpcService_EnvoyGrpc_:
		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.EnvoyGrpc); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_:
		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GoogleGrpc); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("GrpcService.TargetSpecifier has unexpected type %T", x)
	}
	return nil
}

func _GrpcService_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*GrpcService)
	switch tag {
	case 1: // target_specifier.envoy_grpc
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_EnvoyGrpc)
		err := b.DecodeMessage(msg)
		m.TargetSpecifier = &GrpcService_EnvoyGrpc_{msg}
		return true, err
	case 2: // target_specifier.google_grpc
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc)
		err := b.DecodeMessage(msg)
		m.TargetSpecifier = &GrpcService_GoogleGrpc_{msg}
		return true, err
	default:
		return false, nil
	}
}

func _GrpcService_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*GrpcService)
	// target_specifier
	switch x := m.TargetSpecifier.(type) {
	case *GrpcService_EnvoyGrpc_:
		s := proto.Size(x.EnvoyGrpc)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_:
		s := proto.Size(x.GoogleGrpc)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type GrpcService_EnvoyGrpc struct {
	// The name of the upstream gRPC cluster. SSL credentials will be supplied
	// in the :ref:`Cluster <envoy_api_msg_Cluster>` :ref:`tls_context
	// <envoy_api_field_Cluster.tls_context>`.
	ClusterName          string   `protobuf:"bytes,1,opt,name=cluster_name,json=clusterName,proto3" json:"cluster_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GrpcService_EnvoyGrpc) Reset()         { *m = GrpcService_EnvoyGrpc{} }
func (m *GrpcService_EnvoyGrpc) String() string { return proto.CompactTextString(m) }
func (*GrpcService_EnvoyGrpc) ProtoMessage()    {}
func (*GrpcService_EnvoyGrpc) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 0}
}
func (m *GrpcService_EnvoyGrpc) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_EnvoyGrpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_EnvoyGrpc.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_EnvoyGrpc) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_EnvoyGrpc.Merge(dst, src)
}
func (m *GrpcService_EnvoyGrpc) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_EnvoyGrpc) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_EnvoyGrpc.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_EnvoyGrpc proto.InternalMessageInfo

func (m *GrpcService_EnvoyGrpc) GetClusterName() string {
	if m != nil {
		return m.ClusterName
	}
	return ""
}

// [#proto-status: draft]
type GrpcService_GoogleGrpc struct {
	// The target URI when using the `Google C++ gRPC client
	// <https://github.com/grpc/grpc>`_. SSL credentials will be supplied in
	// :ref:`channel_credentials <envoy_api_field_core.GrpcService.GoogleGrpc.channel_credentials>`.
	TargetUri          string                                     `protobuf:"bytes,1,opt,name=target_uri,json=targetUri,proto3" json:"target_uri,omitempty"`
	ChannelCredentials *GrpcService_GoogleGrpc_ChannelCredentials `protobuf:"bytes,2,opt,name=channel_credentials,json=channelCredentials" json:"channel_credentials,omitempty"`
	// A set of call credentials that can be composed with `channel credentials
	// <https://grpc.io/docs/guides/auth.html#credential-types>`_.
	CallCredentials []*GrpcService_GoogleGrpc_CallCredentials `protobuf:"bytes,3,rep,name=call_credentials,json=callCredentials" json:"call_credentials,omitempty"`
	// The human readable prefix to use when emitting statistics for the gRPC
	// service.
	//
	// .. csv-table::
	//    :header: Name, Type, Description
	//    :widths: 1, 1, 2
	//
	//    streams_total, Counter, Total number of streams opened
	//    streams_closed_<gRPC status code>, Counter, Total streams closed with <gRPC status code>
	StatPrefix string `protobuf:"bytes,4,opt,name=stat_prefix,json=statPrefix,proto3" json:"stat_prefix,omitempty"`
	// The name of the Google gRPC credentials factory to use. This must have been registered with
	// Envoy. If this is empty, a default credentials factory will be used that sets up channel
	// credentials based on other configuration parameters.
	CredentialsFactoryName string `protobuf:"bytes,5,opt,name=credentials_factory_name,json=credentialsFactoryName,proto3" json:"credentials_factory_name,omitempty"`
	// Additional configuration for site-specific customizations of the Google
	// gRPC library.
	Config               *types.Struct `protobuf:"bytes,6,opt,name=config" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *GrpcService_GoogleGrpc) Reset()         { *m = GrpcService_GoogleGrpc{} }
func (m *GrpcService_GoogleGrpc) String() string { return proto.CompactTextString(m) }
func (*GrpcService_GoogleGrpc) ProtoMessage()    {}
func (*GrpcService_GoogleGrpc) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1}
}
func (m *GrpcService_GoogleGrpc) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc proto.InternalMessageInfo

func (m *GrpcService_GoogleGrpc) GetTargetUri() string {
	if m != nil {
		return m.TargetUri
	}
	return ""
}

func (m *GrpcService_GoogleGrpc) GetChannelCredentials() *GrpcService_GoogleGrpc_ChannelCredentials {
	if m != nil {
		return m.ChannelCredentials
	}
	return nil
}

func (m *GrpcService_GoogleGrpc) GetCallCredentials() []*GrpcService_GoogleGrpc_CallCredentials {
	if m != nil {
		return m.CallCredentials
	}
	return nil
}

func (m *GrpcService_GoogleGrpc) GetStatPrefix() string {
	if m != nil {
		return m.StatPrefix
	}
	return ""
}

func (m *GrpcService_GoogleGrpc) GetCredentialsFactoryName() string {
	if m != nil {
		return m.CredentialsFactoryName
	}
	return ""
}

func (m *GrpcService_GoogleGrpc) GetConfig() *types.Struct {
	if m != nil {
		return m.Config
	}
	return nil
}

// See https://grpc.io/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html.
type GrpcService_GoogleGrpc_SslCredentials struct {
	// PEM encoded server root certificates.
	RootCerts *DataSource `protobuf:"bytes,1,opt,name=root_certs,json=rootCerts" json:"root_certs,omitempty"`
	// PEM encoded client private key.
	PrivateKey *DataSource `protobuf:"bytes,2,opt,name=private_key,json=privateKey" json:"private_key,omitempty"`
	// PEM encoded client certificate chain.
	CertChain            *DataSource `protobuf:"bytes,3,opt,name=cert_chain,json=certChain" json:"cert_chain,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *GrpcService_GoogleGrpc_SslCredentials) Reset()         { *m = GrpcService_GoogleGrpc_SslCredentials{} }
func (m *GrpcService_GoogleGrpc_SslCredentials) String() string { return proto.CompactTextString(m) }
func (*GrpcService_GoogleGrpc_SslCredentials) ProtoMessage()    {}
func (*GrpcService_GoogleGrpc_SslCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 0}
}
func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_SslCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_SslCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_SslCredentials proto.InternalMessageInfo

func (m *GrpcService_GoogleGrpc_SslCredentials) GetRootCerts() *DataSource {
	if m != nil {
		return m.RootCerts
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_SslCredentials) GetPrivateKey() *DataSource {
	if m != nil {
		return m.PrivateKey
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_SslCredentials) GetCertChain() *DataSource {
	if m != nil {
		return m.CertChain
	}
	return nil
}

// Local channel credentials. Only UDS is supported for now.
// See https://github.com/grpc/grpc/pull/15909.
type GrpcService_GoogleGrpc_GoogleLocalCredentials struct {
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) Reset() {
	*m = GrpcService_GoogleGrpc_GoogleLocalCredentials{}
}
func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) String() string {
	return proto.CompactTextString(m)
}
func (*GrpcService_GoogleGrpc_GoogleLocalCredentials) ProtoMessage() {}
func (*GrpcService_GoogleGrpc_GoogleLocalCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 1}
}
func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_GoogleLocalCredentials proto.InternalMessageInfo

// See https://grpc.io/docs/guides/auth.html#credential-types to understand Channel and Call
// credential types.
type GrpcService_GoogleGrpc_ChannelCredentials struct {
	// Types that are valid to be assigned to CredentialSpecifier:
	//	*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials
	//	*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault
	//	*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials
	CredentialSpecifier  isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier `protobuf_oneof:"credential_specifier"`
	XXX_NoUnkeyedLiteral struct{}                                                        `json:"-"`
	XXX_unrecognized     []byte                                                          `json:"-"`
	XXX_sizecache        int32                                                           `json:"-"`
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) Reset() {
	*m = GrpcService_GoogleGrpc_ChannelCredentials{}
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials) String() string { return proto.CompactTextString(m) }
func (*GrpcService_GoogleGrpc_ChannelCredentials) ProtoMessage()    {}
func (*GrpcService_GoogleGrpc_ChannelCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 2}
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_ChannelCredentials proto.InternalMessageInfo

type isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier interface {
	isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier()
	Equal(interface{}) bool
	MarshalTo([]byte) (int, error)
	Size() int
}

type GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials struct {
	SslCredentials *GrpcService_GoogleGrpc_SslCredentials `protobuf:"bytes,1,opt,name=ssl_credentials,json=sslCredentials,oneof"`
}
type GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault struct {
	GoogleDefault *types.Empty `protobuf:"bytes,2,opt,name=google_default,json=googleDefault,oneof"`
}
type GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials struct {
	LocalCredentials *GrpcService_GoogleGrpc_GoogleLocalCredentials `protobuf:"bytes,3,opt,name=local_credentials,json=localCredentials,oneof"`
}

func (*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials) isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier() {
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetCredentialSpecifier() isGrpcService_GoogleGrpc_ChannelCredentials_CredentialSpecifier {
	if m != nil {
		return m.CredentialSpecifier
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetSslCredentials() *GrpcService_GoogleGrpc_SslCredentials {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials); ok {
		return x.SslCredentials
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetGoogleDefault() *types.Empty {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault); ok {
		return x.GoogleDefault
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) GetLocalCredentials() *GrpcService_GoogleGrpc_GoogleLocalCredentials {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials); ok {
		return x.LocalCredentials
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*GrpcService_GoogleGrpc_ChannelCredentials) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _GrpcService_GoogleGrpc_ChannelCredentials_OneofMarshaler, _GrpcService_GoogleGrpc_ChannelCredentials_OneofUnmarshaler, _GrpcService_GoogleGrpc_ChannelCredentials_OneofSizer, []interface{}{
		(*GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials)(nil),
		(*GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault)(nil),
		(*GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials)(nil),
	}
}

func _GrpcService_GoogleGrpc_ChannelCredentials_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*GrpcService_GoogleGrpc_ChannelCredentials)
	// credential_specifier
	switch x := m.CredentialSpecifier.(type) {
	case *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials:
		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.SslCredentials); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault:
		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GoogleDefault); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials:
		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.LocalCredentials); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("GrpcService_GoogleGrpc_ChannelCredentials.CredentialSpecifier has unexpected type %T", x)
	}
	return nil
}

func _GrpcService_GoogleGrpc_ChannelCredentials_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*GrpcService_GoogleGrpc_ChannelCredentials)
	switch tag {
	case 1: // credential_specifier.ssl_credentials
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc_SslCredentials)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials{msg}
		return true, err
	case 2: // credential_specifier.google_default
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.Empty)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault{msg}
		return true, err
	case 3: // credential_specifier.local_credentials
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc_GoogleLocalCredentials)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials{msg}
		return true, err
	default:
		return false, nil
	}
}

func _GrpcService_GoogleGrpc_ChannelCredentials_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*GrpcService_GoogleGrpc_ChannelCredentials)
	// credential_specifier
	switch x := m.CredentialSpecifier.(type) {
	case *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials:
		s := proto.Size(x.SslCredentials)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault:
		s := proto.Size(x.GoogleDefault)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials:
		s := proto.Size(x.LocalCredentials)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type GrpcService_GoogleGrpc_CallCredentials struct {
	// Types that are valid to be assigned to CredentialSpecifier:
	//	*GrpcService_GoogleGrpc_CallCredentials_AccessToken
	//	*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine
	//	*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken
	//	*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess
	//	*GrpcService_GoogleGrpc_CallCredentials_GoogleIam
	//	*GrpcService_GoogleGrpc_CallCredentials_FromPlugin
	CredentialSpecifier  isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier `protobuf_oneof:"credential_specifier"`
	XXX_NoUnkeyedLiteral struct{}                                                     `json:"-"`
	XXX_unrecognized     []byte                                                       `json:"-"`
	XXX_sizecache        int32                                                        `json:"-"`
}

func (m *GrpcService_GoogleGrpc_CallCredentials) Reset() {
	*m = GrpcService_GoogleGrpc_CallCredentials{}
}
func (m *GrpcService_GoogleGrpc_CallCredentials) String() string { return proto.CompactTextString(m) }
func (*GrpcService_GoogleGrpc_CallCredentials) ProtoMessage()    {}
func (*GrpcService_GoogleGrpc_CallCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 3}
}
func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_CallCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_CallCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials proto.InternalMessageInfo

type isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier interface {
	isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier()
	Equal(interface{}) bool
	MarshalTo([]byte) (int, error)
	Size() int
}

type GrpcService_GoogleGrpc_CallCredentials_AccessToken struct {
	AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3,oneof"`
}
type GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine struct {
	GoogleComputeEngine *types.Empty `protobuf:"bytes,2,opt,name=google_compute_engine,json=googleComputeEngine,oneof"`
}
type GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken struct {
	GoogleRefreshToken string `protobuf:"bytes,3,opt,name=google_refresh_token,json=googleRefreshToken,proto3,oneof"`
}
type GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess struct {
	ServiceAccountJwtAccess *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials `protobuf:"bytes,4,opt,name=service_account_jwt_access,json=serviceAccountJwtAccess,oneof"`
}
type GrpcService_GoogleGrpc_CallCredentials_GoogleIam struct {
	GoogleIam *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials `protobuf:"bytes,5,opt,name=google_iam,json=googleIam,oneof"`
}
type GrpcService_GoogleGrpc_CallCredentials_FromPlugin struct {
	FromPlugin *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin `protobuf:"bytes,6,opt,name=from_plugin,json=fromPlugin,oneof"`
}

func (*GrpcService_GoogleGrpc_CallCredentials_AccessToken) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIam) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}
func (*GrpcService_GoogleGrpc_CallCredentials_FromPlugin) isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier() {
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetCredentialSpecifier() isGrpcService_GoogleGrpc_CallCredentials_CredentialSpecifier {
	if m != nil {
		return m.CredentialSpecifier
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetAccessToken() string {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_AccessToken); ok {
		return x.AccessToken
	}
	return ""
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleComputeEngine() *types.Empty {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine); ok {
		return x.GoogleComputeEngine
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleRefreshToken() string {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken); ok {
		return x.GoogleRefreshToken
	}
	return ""
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetServiceAccountJwtAccess() *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess); ok {
		return x.ServiceAccountJwtAccess
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetGoogleIam() *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_GoogleIam); ok {
		return x.GoogleIam
	}
	return nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials) GetFromPlugin() *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin {
	if x, ok := m.GetCredentialSpecifier().(*GrpcService_GoogleGrpc_CallCredentials_FromPlugin); ok {
		return x.FromPlugin
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*GrpcService_GoogleGrpc_CallCredentials) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _GrpcService_GoogleGrpc_CallCredentials_OneofMarshaler, _GrpcService_GoogleGrpc_CallCredentials_OneofUnmarshaler, _GrpcService_GoogleGrpc_CallCredentials_OneofSizer, []interface{}{
		(*GrpcService_GoogleGrpc_CallCredentials_AccessToken)(nil),
		(*GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine)(nil),
		(*GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken)(nil),
		(*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess)(nil),
		(*GrpcService_GoogleGrpc_CallCredentials_GoogleIam)(nil),
		(*GrpcService_GoogleGrpc_CallCredentials_FromPlugin)(nil),
	}
}

func _GrpcService_GoogleGrpc_CallCredentials_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*GrpcService_GoogleGrpc_CallCredentials)
	// credential_specifier
	switch x := m.CredentialSpecifier.(type) {
	case *GrpcService_GoogleGrpc_CallCredentials_AccessToken:
		_ = b.EncodeVarint(1<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.AccessToken)
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine:
		_ = b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GoogleComputeEngine); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken:
		_ = b.EncodeVarint(3<<3 | proto.WireBytes)
		_ = b.EncodeStringBytes(x.GoogleRefreshToken)
	case *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess:
		_ = b.EncodeVarint(4<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ServiceAccountJwtAccess); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleIam:
		_ = b.EncodeVarint(5<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.GoogleIam); err != nil {
			return err
		}
	case *GrpcService_GoogleGrpc_CallCredentials_FromPlugin:
		_ = b.EncodeVarint(6<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.FromPlugin); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("GrpcService_GoogleGrpc_CallCredentials.CredentialSpecifier has unexpected type %T", x)
	}
	return nil
}

func _GrpcService_GoogleGrpc_CallCredentials_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*GrpcService_GoogleGrpc_CallCredentials)
	switch tag {
	case 1: // credential_specifier.access_token
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_AccessToken{x}
		return true, err
	case 2: // credential_specifier.google_compute_engine
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(types.Empty)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine{msg}
		return true, err
	case 3: // credential_specifier.google_refresh_token
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		x, err := b.DecodeStringBytes()
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken{x}
		return true, err
	case 4: // credential_specifier.service_account_jwt_access
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess{msg}
		return true, err
	case 5: // credential_specifier.google_iam
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleIam{msg}
		return true, err
	case 6: // credential_specifier.from_plugin
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin)
		err := b.DecodeMessage(msg)
		m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_FromPlugin{msg}
		return true, err
	default:
		return false, nil
	}
}

func _GrpcService_GoogleGrpc_CallCredentials_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*GrpcService_GoogleGrpc_CallCredentials)
	// credential_specifier
	switch x := m.CredentialSpecifier.(type) {
	case *GrpcService_GoogleGrpc_CallCredentials_AccessToken:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.AccessToken)))
		n += len(x.AccessToken)
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine:
		s := proto.Size(x.GoogleComputeEngine)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken:
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(len(x.GoogleRefreshToken)))
		n += len(x.GoogleRefreshToken)
	case *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess:
		s := proto.Size(x.ServiceAccountJwtAccess)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_CallCredentials_GoogleIam:
		s := proto.Size(x.GoogleIam)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case *GrpcService_GoogleGrpc_CallCredentials_FromPlugin:
		s := proto.Size(x.FromPlugin)
		n += 1 // tag and wire
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials struct {
	JsonKey              string   `protobuf:"bytes,1,opt,name=json_key,json=jsonKey,proto3" json:"json_key,omitempty"`
	TokenLifetimeSeconds uint64   `protobuf:"varint,2,opt,name=token_lifetime_seconds,json=tokenLifetimeSeconds,proto3" json:"token_lifetime_seconds,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Reset() {
	*m = GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials{}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) String() string {
	return proto.CompactTextString(m)
}
func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) ProtoMessage() {}
func (*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 3, 0}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials proto.InternalMessageInfo

func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) GetJsonKey() string {
	if m != nil {
		return m.JsonKey
	}
	return ""
}

func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) GetTokenLifetimeSeconds() uint64 {
	if m != nil {
		return m.TokenLifetimeSeconds
	}
	return 0
}

type GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials struct {
	AuthorizationToken   string   `protobuf:"bytes,1,opt,name=authorization_token,json=authorizationToken,proto3" json:"authorization_token,omitempty"`
	AuthoritySelector    string   `protobuf:"bytes,2,opt,name=authority_selector,json=authoritySelector,proto3" json:"authority_selector,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Reset() {
	*m = GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials{}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) String() string {
	return proto.CompactTextString(m)
}
func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) ProtoMessage() {}
func (*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 3, 1}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials proto.InternalMessageInfo

func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) GetAuthorizationToken() string {
	if m != nil {
		return m.AuthorizationToken
	}
	return ""
}

func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) GetAuthoritySelector() string {
	if m != nil {
		return m.AuthoritySelector
	}
	return ""
}

type GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin struct {
	Name                 string        `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Config               *types.Struct `protobuf:"bytes,2,opt,name=config" json:"config,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Reset() {
	*m = GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin{}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) String() string {
	return proto.CompactTextString(m)
}
func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) ProtoMessage() {}
func (*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Descriptor() ([]byte, []int) {
	return fileDescriptor_grpc_service_2df2b8908a2b5284, []int{0, 1, 3, 2}
}
func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Unmarshal(b []byte) error {
	return m.Unmarshal(b)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	if deterministic {
		return xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Marshal(b, m, deterministic)
	} else {
		b = b[:cap(b)]
		n, err := m.MarshalTo(b)
		if err != nil {
			return nil, err
		}
		return b[:n], nil
	}
}
func (dst *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.Merge(dst, src)
}
func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_Size() int {
	return m.Size()
}
func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) XXX_DiscardUnknown() {
	xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin.DiscardUnknown(m)
}

var xxx_messageInfo_GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin proto.InternalMessageInfo

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

func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) GetConfig() *types.Struct {
	if m != nil {
		return m.Config
	}
	return nil
}

func init() {
	proto.RegisterType((*GrpcService)(nil), "envoy.api.v2.core.GrpcService")
	proto.RegisterType((*GrpcService_EnvoyGrpc)(nil), "envoy.api.v2.core.GrpcService.EnvoyGrpc")
	proto.RegisterType((*GrpcService_GoogleGrpc)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc")
	proto.RegisterType((*GrpcService_GoogleGrpc_SslCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.SslCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_GoogleLocalCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.GoogleLocalCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_ChannelCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.ChannelCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.CallCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.CallCredentials.ServiceAccountJWTAccessCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.CallCredentials.GoogleIAMCredentials")
	proto.RegisterType((*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin)(nil), "envoy.api.v2.core.GrpcService.GoogleGrpc.CallCredentials.MetadataCredentialsFromPlugin")
}
func (this *GrpcService) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*GrpcService)
	if !ok {
		that2, ok := that.(GrpcService)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if that1.TargetSpecifier == nil {
		if this.TargetSpecifier != nil {
			return false
		}
	} else if this.TargetSpecifier == nil {
		return false
	} else if !this.TargetSpecifier.Equal(that1.TargetSpecifier) {
		return false
	}
	if !this.Timeout.Equal(that1.Timeout) {
		return false
	}
	if len(this.InitialMetadata) != len(that1.InitialMetadata) {
		return false
	}
	for i := range this.InitialMetadata {
		if !this.InitialMetadata[i].Equal(that1.InitialMetadata[i]) {
			return false
		}
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *GrpcService_EnvoyGrpc_) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

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

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

	that1, ok := that.(*GrpcService_GoogleGrpc)
	if !ok {
		that2, ok := that.(GrpcService_GoogleGrpc)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.TargetUri != that1.TargetUri {
		return false
	}
	if !this.ChannelCredentials.Equal(that1.ChannelCredentials) {
		return false
	}
	if len(this.CallCredentials) != len(that1.CallCredentials) {
		return false
	}
	for i := range this.CallCredentials {
		if !this.CallCredentials[i].Equal(that1.CallCredentials[i]) {
			return false
		}
	}
	if this.StatPrefix != that1.StatPrefix {
		return false
	}
	if this.CredentialsFactoryName != that1.CredentialsFactoryName {
		return false
	}
	if !this.Config.Equal(that1.Config) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *GrpcService_GoogleGrpc_SslCredentials) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

	that1, ok := that.(*GrpcService_GoogleGrpc_SslCredentials)
	if !ok {
		that2, ok := that.(GrpcService_GoogleGrpc_SslCredentials)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if !this.RootCerts.Equal(that1.RootCerts) {
		return false
	}
	if !this.PrivateKey.Equal(that1.PrivateKey) {
		return false
	}
	if !this.CertChain.Equal(that1.CertChain) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (this *GrpcService_GoogleGrpc_GoogleLocalCredentials) Equal(that interface{}) bool {
	if that == nil {
		return this == nil
	}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	that1, ok := that.(*GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin)
	if !ok {
		that2, ok := that.(GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin)
		if ok {
			that1 = &that2
		} else {
			return false
		}
	}
	if that1 == nil {
		return this == nil
	} else if this == nil {
		return false
	}
	if this.Name != that1.Name {
		return false
	}
	if !this.Config.Equal(that1.Config) {
		return false
	}
	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
		return false
	}
	return true
}
func (m *GrpcService) 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 *GrpcService) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.TargetSpecifier != nil {
		nn1, err := m.TargetSpecifier.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += nn1
	}
	if m.Timeout != nil {
		dAtA[i] = 0x1a
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.Timeout.Size()))
		n2, err := m.Timeout.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n2
	}
	if len(m.InitialMetadata) > 0 {
		for _, msg := range m.InitialMetadata {
			dAtA[i] = 0x2a
			i++
			i = encodeVarintGrpcService(dAtA, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(dAtA[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_EnvoyGrpc_) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.EnvoyGrpc != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.EnvoyGrpc.Size()))
		n3, err := m.EnvoyGrpc.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n3
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.GoogleGrpc != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.GoogleGrpc.Size()))
		n4, err := m.GoogleGrpc.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n4
	}
	return i, nil
}
func (m *GrpcService_EnvoyGrpc) 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 *GrpcService_EnvoyGrpc) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.ClusterName) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.ClusterName)))
		i += copy(dAtA[i:], m.ClusterName)
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc) 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 *GrpcService_GoogleGrpc) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.TargetUri) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.TargetUri)))
		i += copy(dAtA[i:], m.TargetUri)
	}
	if m.ChannelCredentials != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.ChannelCredentials.Size()))
		n5, err := m.ChannelCredentials.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n5
	}
	if len(m.CallCredentials) > 0 {
		for _, msg := range m.CallCredentials {
			dAtA[i] = 0x1a
			i++
			i = encodeVarintGrpcService(dAtA, i, uint64(msg.Size()))
			n, err := msg.MarshalTo(dAtA[i:])
			if err != nil {
				return 0, err
			}
			i += n
		}
	}
	if len(m.StatPrefix) > 0 {
		dAtA[i] = 0x22
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.StatPrefix)))
		i += copy(dAtA[i:], m.StatPrefix)
	}
	if len(m.CredentialsFactoryName) > 0 {
		dAtA[i] = 0x2a
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.CredentialsFactoryName)))
		i += copy(dAtA[i:], m.CredentialsFactoryName)
	}
	if m.Config != nil {
		dAtA[i] = 0x32
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.Config.Size()))
		n6, err := m.Config.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n6
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_SslCredentials) 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 *GrpcService_GoogleGrpc_SslCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.RootCerts != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.RootCerts.Size()))
		n7, err := m.RootCerts.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n7
	}
	if m.PrivateKey != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.PrivateKey.Size()))
		n8, err := m.PrivateKey.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n8
	}
	if m.CertChain != nil {
		dAtA[i] = 0x1a
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.CertChain.Size()))
		n9, err := m.CertChain.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n9
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_GoogleLocalCredentials) 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 *GrpcService_GoogleGrpc_GoogleLocalCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials) 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 *GrpcService_GoogleGrpc_ChannelCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.CredentialSpecifier != nil {
		nn10, err := m.CredentialSpecifier.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += nn10
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.SslCredentials != nil {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.SslCredentials.Size()))
		n11, err := m.SslCredentials.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n11
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.GoogleDefault != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.GoogleDefault.Size()))
		n12, err := m.GoogleDefault.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n12
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.LocalCredentials != nil {
		dAtA[i] = 0x1a
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.LocalCredentials.Size()))
		n13, err := m.LocalCredentials.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n13
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials) 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 *GrpcService_GoogleGrpc_CallCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if m.CredentialSpecifier != nil {
		nn14, err := m.CredentialSpecifier.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += nn14
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials_AccessToken) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0xa
	i++
	i = encodeVarintGrpcService(dAtA, i, uint64(len(m.AccessToken)))
	i += copy(dAtA[i:], m.AccessToken)
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.GoogleComputeEngine != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.GoogleComputeEngine.Size()))
		n15, err := m.GoogleComputeEngine.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n15
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	dAtA[i] = 0x1a
	i++
	i = encodeVarintGrpcService(dAtA, i, uint64(len(m.GoogleRefreshToken)))
	i += copy(dAtA[i:], m.GoogleRefreshToken)
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.ServiceAccountJwtAccess != nil {
		dAtA[i] = 0x22
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.ServiceAccountJwtAccess.Size()))
		n16, err := m.ServiceAccountJwtAccess.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n16
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIam) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.GoogleIam != nil {
		dAtA[i] = 0x2a
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.GoogleIam.Size()))
		n17, err := m.GoogleIam.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n17
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_FromPlugin) MarshalTo(dAtA []byte) (int, error) {
	i := 0
	if m.FromPlugin != nil {
		dAtA[i] = 0x32
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.FromPlugin.Size()))
		n18, err := m.FromPlugin.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n18
	}
	return i, nil
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) 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 *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.JsonKey) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.JsonKey)))
		i += copy(dAtA[i:], m.JsonKey)
	}
	if m.TokenLifetimeSeconds != 0 {
		dAtA[i] = 0x10
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.TokenLifetimeSeconds))
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) 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 *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.AuthorizationToken) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.AuthorizationToken)))
		i += copy(dAtA[i:], m.AuthorizationToken)
	}
	if len(m.AuthoritySelector) > 0 {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.AuthoritySelector)))
		i += copy(dAtA[i:], m.AuthoritySelector)
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) 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 *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) MarshalTo(dAtA []byte) (int, error) {
	var i int
	_ = i
	var l int
	_ = l
	if len(m.Name) > 0 {
		dAtA[i] = 0xa
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(len(m.Name)))
		i += copy(dAtA[i:], m.Name)
	}
	if m.Config != nil {
		dAtA[i] = 0x12
		i++
		i = encodeVarintGrpcService(dAtA, i, uint64(m.Config.Size()))
		n19, err := m.Config.MarshalTo(dAtA[i:])
		if err != nil {
			return 0, err
		}
		i += n19
	}
	if m.XXX_unrecognized != nil {
		i += copy(dAtA[i:], m.XXX_unrecognized)
	}
	return i, nil
}

func encodeVarintGrpcService(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 (m *GrpcService) Size() (n int) {
	var l int
	_ = l
	if m.TargetSpecifier != nil {
		n += m.TargetSpecifier.Size()
	}
	if m.Timeout != nil {
		l = m.Timeout.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if len(m.InitialMetadata) > 0 {
		for _, e := range m.InitialMetadata {
			l = e.Size()
			n += 1 + l + sovGrpcService(uint64(l))
		}
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_EnvoyGrpc_) Size() (n int) {
	var l int
	_ = l
	if m.EnvoyGrpc != nil {
		l = m.EnvoyGrpc.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_) Size() (n int) {
	var l int
	_ = l
	if m.GoogleGrpc != nil {
		l = m.GoogleGrpc.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_EnvoyGrpc) Size() (n int) {
	var l int
	_ = l
	l = len(m.ClusterName)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_GoogleGrpc) Size() (n int) {
	var l int
	_ = l
	l = len(m.TargetUri)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.ChannelCredentials != nil {
		l = m.ChannelCredentials.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if len(m.CallCredentials) > 0 {
		for _, e := range m.CallCredentials {
			l = e.Size()
			n += 1 + l + sovGrpcService(uint64(l))
		}
	}
	l = len(m.StatPrefix)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	l = len(m.CredentialsFactoryName)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.Config != nil {
		l = m.Config.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_GoogleGrpc_SslCredentials) Size() (n int) {
	var l int
	_ = l
	if m.RootCerts != nil {
		l = m.RootCerts.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.PrivateKey != nil {
		l = m.PrivateKey.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.CertChain != nil {
		l = m.CertChain.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

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

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

func (m *GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials) Size() (n int) {
	var l int
	_ = l
	if m.SslCredentials != nil {
		l = m.SslCredentials.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault) Size() (n int) {
	var l int
	_ = l
	if m.GoogleDefault != nil {
		l = m.GoogleDefault.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials) Size() (n int) {
	var l int
	_ = l
	if m.LocalCredentials != nil {
		l = m.LocalCredentials.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials) Size() (n int) {
	var l int
	_ = l
	if m.CredentialSpecifier != nil {
		n += m.CredentialSpecifier.Size()
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_GoogleGrpc_CallCredentials_AccessToken) Size() (n int) {
	var l int
	_ = l
	l = len(m.AccessToken)
	n += 1 + l + sovGrpcService(uint64(l))
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine) Size() (n int) {
	var l int
	_ = l
	if m.GoogleComputeEngine != nil {
		l = m.GoogleComputeEngine.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken) Size() (n int) {
	var l int
	_ = l
	l = len(m.GoogleRefreshToken)
	n += 1 + l + sovGrpcService(uint64(l))
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess) Size() (n int) {
	var l int
	_ = l
	if m.ServiceAccountJwtAccess != nil {
		l = m.ServiceAccountJwtAccess.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIam) Size() (n int) {
	var l int
	_ = l
	if m.GoogleIam != nil {
		l = m.GoogleIam.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_FromPlugin) Size() (n int) {
	var l int
	_ = l
	if m.FromPlugin != nil {
		l = m.FromPlugin.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	return n
}
func (m *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) Size() (n int) {
	var l int
	_ = l
	l = len(m.JsonKey)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.TokenLifetimeSeconds != 0 {
		n += 1 + sovGrpcService(uint64(m.TokenLifetimeSeconds))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) Size() (n int) {
	var l int
	_ = l
	l = len(m.AuthorizationToken)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	l = len(m.AuthoritySelector)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func (m *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) Size() (n int) {
	var l int
	_ = l
	l = len(m.Name)
	if l > 0 {
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.Config != nil {
		l = m.Config.Size()
		n += 1 + l + sovGrpcService(uint64(l))
	}
	if m.XXX_unrecognized != nil {
		n += len(m.XXX_unrecognized)
	}
	return n
}

func sovGrpcService(x uint64) (n int) {
	for {
		n++
		x >>= 7
		if x == 0 {
			break
		}
	}
	return n
}
func sozGrpcService(x uint64) (n int) {
	return sovGrpcService(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (m *GrpcService) 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 ErrIntOverflowGrpcService
			}
			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: GrpcService: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GrpcService: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field EnvoyGrpc", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_EnvoyGrpc{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.TargetSpecifier = &GrpcService_EnvoyGrpc_{v}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field GoogleGrpc", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.TargetSpecifier = &GrpcService_GoogleGrpc_{v}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Timeout", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Timeout == nil {
				m.Timeout = &types.Duration{}
			}
			if err := m.Timeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field InitialMetadata", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.InitialMetadata = append(m.InitialMetadata, &HeaderValue{})
			if err := m.InitialMetadata[len(m.InitialMetadata)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_EnvoyGrpc) 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 ErrIntOverflowGrpcService
			}
			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: EnvoyGrpc: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: EnvoyGrpc: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ClusterName", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.ClusterName = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc) 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 ErrIntOverflowGrpcService
			}
			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: GoogleGrpc: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GoogleGrpc: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field TargetUri", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.TargetUri = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ChannelCredentials", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.ChannelCredentials == nil {
				m.ChannelCredentials = &GrpcService_GoogleGrpc_ChannelCredentials{}
			}
			if err := m.ChannelCredentials.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CallCredentials", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.CallCredentials = append(m.CallCredentials, &GrpcService_GoogleGrpc_CallCredentials{})
			if err := m.CallCredentials[len(m.CallCredentials)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field StatPrefix", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.StatPrefix = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CredentialsFactoryName", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.CredentialsFactoryName = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Config == nil {
				m.Config = &types.Struct{}
			}
			if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_SslCredentials) 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 ErrIntOverflowGrpcService
			}
			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: SslCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: SslCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field RootCerts", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.RootCerts == nil {
				m.RootCerts = &DataSource{}
			}
			if err := m.RootCerts.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field PrivateKey", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.PrivateKey == nil {
				m.PrivateKey = &DataSource{}
			}
			if err := m.PrivateKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field CertChain", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.CertChain == nil {
				m.CertChain = &DataSource{}
			}
			if err := m.CertChain.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_GoogleLocalCredentials) 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 ErrIntOverflowGrpcService
			}
			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: GoogleLocalCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GoogleLocalCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_ChannelCredentials) 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 ErrIntOverflowGrpcService
			}
			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: ChannelCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ChannelCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field SslCredentials", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc_SslCredentials{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_SslCredentials{v}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field GoogleDefault", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &types.Empty{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_GoogleDefault{v}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field LocalCredentials", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc_GoogleLocalCredentials{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_ChannelCredentials_LocalCredentials{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_CallCredentials) 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 ErrIntOverflowGrpcService
			}
			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: CallCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: CallCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field AccessToken", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_AccessToken{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field GoogleComputeEngine", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &types.Empty{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleComputeEngine{v}
			iNdEx = postIndex
		case 3:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field GoogleRefreshToken", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleRefreshToken{string(dAtA[iNdEx:postIndex])}
			iNdEx = postIndex
		case 4:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountJwtAccess", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJwtAccess{v}
			iNdEx = postIndex
		case 5:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field GoogleIam", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_GoogleIam{v}
			iNdEx = postIndex
		case 6:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field FromPlugin", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			v := &GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin{}
			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			m.CredentialSpecifier = &GrpcService_GoogleGrpc_CallCredentials_FromPlugin{v}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_CallCredentials_ServiceAccountJWTAccessCredentials) 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 ErrIntOverflowGrpcService
			}
			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: ServiceAccountJWTAccessCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: ServiceAccountJWTAccessCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field JsonKey", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.JsonKey = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 0 {
				return fmt.Errorf("proto: wrong wireType = %d for field TokenLifetimeSeconds", wireType)
			}
			m.TokenLifetimeSeconds = 0
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				m.TokenLifetimeSeconds |= (uint64(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_CallCredentials_GoogleIAMCredentials) 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 ErrIntOverflowGrpcService
			}
			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: GoogleIAMCredentials: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: GoogleIAMCredentials: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field AuthorizationToken", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.AuthorizationToken = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field AuthoritySelector", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.AuthoritySelector = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 *GrpcService_GoogleGrpc_CallCredentials_MetadataCredentialsFromPlugin) 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 ErrIntOverflowGrpcService
			}
			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: MetadataCredentialsFromPlugin: wiretype end group for non-group")
		}
		if fieldNum <= 0 {
			return fmt.Errorf("proto: MetadataCredentialsFromPlugin: illegal tag %d (wire type %d)", fieldNum, wire)
		}
		switch fieldNum {
		case 1:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType)
			}
			var stringLen uint64
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				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 ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + intStringLen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			m.Name = string(dAtA[iNdEx:postIndex])
			iNdEx = postIndex
		case 2:
			if wireType != 2 {
				return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType)
			}
			var msglen int
			for shift := uint(0); ; shift += 7 {
				if shift >= 64 {
					return ErrIntOverflowGrpcService
				}
				if iNdEx >= l {
					return io.ErrUnexpectedEOF
				}
				b := dAtA[iNdEx]
				iNdEx++
				msglen |= (int(b) & 0x7F) << shift
				if b < 0x80 {
					break
				}
			}
			if msglen < 0 {
				return ErrInvalidLengthGrpcService
			}
			postIndex := iNdEx + msglen
			if postIndex > l {
				return io.ErrUnexpectedEOF
			}
			if m.Config == nil {
				m.Config = &types.Struct{}
			}
			if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
				return err
			}
			iNdEx = postIndex
		default:
			iNdEx = preIndex
			skippy, err := skipGrpcService(dAtA[iNdEx:])
			if err != nil {
				return err
			}
			if skippy < 0 {
				return ErrInvalidLengthGrpcService
			}
			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 skipGrpcService(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, ErrIntOverflowGrpcService
			}
			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, ErrIntOverflowGrpcService
				}
				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, ErrIntOverflowGrpcService
				}
				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, ErrInvalidLengthGrpcService
			}
			return iNdEx, nil
		case 3:
			for {
				var innerWire uint64
				var start int = iNdEx
				for shift := uint(0); ; shift += 7 {
					if shift >= 64 {
						return 0, ErrIntOverflowGrpcService
					}
					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 := skipGrpcService(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 (
	ErrInvalidLengthGrpcService = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowGrpcService   = fmt.Errorf("proto: integer overflow")
)

func init() {
	proto.RegisterFile("envoy/api/v2/core/grpc_service.proto", fileDescriptor_grpc_service_2df2b8908a2b5284)
}

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