// Code generated by protoc-gen-go. DO NOT EDIT.
// source: lte/protos/mconfig/mconfigs.proto

package mconfig

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	protos "magma/orc8r/lib/go/protos"
	math "math"
)

// 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.ProtoPackageIsVersion3 // please upgrade the proto package

type EnodebD_CSFBRat int32

const (
	EnodebD_CSFBRAT_2G EnodebD_CSFBRat = 0
	EnodebD_CSFBRAT_3G EnodebD_CSFBRat = 1
)

var EnodebD_CSFBRat_name = map[int32]string{
	0: "CSFBRAT_2G",
	1: "CSFBRAT_3G",
}

var EnodebD_CSFBRat_value = map[string]int32{
	"CSFBRAT_2G": 0,
	"CSFBRAT_3G": 1,
}

func (x EnodebD_CSFBRat) String() string {
	return proto.EnumName(EnodebD_CSFBRat_name, int32(x))
}

func (EnodebD_CSFBRat) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{0, 0}
}

type PipelineD_NetworkServices int32

const (
	PipelineD_METERING    PipelineD_NetworkServices = 0 // Deprecated: Do not use.
	PipelineD_DPI         PipelineD_NetworkServices = 1
	PipelineD_ENFORCEMENT PipelineD_NetworkServices = 2
)

var PipelineD_NetworkServices_name = map[int32]string{
	0: "METERING",
	1: "DPI",
	2: "ENFORCEMENT",
}

var PipelineD_NetworkServices_value = map[string]int32{
	"METERING":    0,
	"DPI":         1,
	"ENFORCEMENT": 2,
}

func (x PipelineD_NetworkServices) String() string {
	return proto.EnumName(PipelineD_NetworkServices_name, int32(x))
}

func (PipelineD_NetworkServices) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{1, 0}
}

type WalletExhaustDetection_Method int32

const (
	// If # of Gx Tracked Rules are > 0, then the wallet is still valid
	WalletExhaustDetection_GxTrackedRules WalletExhaustDetection_Method = 0
)

var WalletExhaustDetection_Method_name = map[int32]string{
	0: "GxTrackedRules",
}

var WalletExhaustDetection_Method_value = map[string]int32{
	"GxTrackedRules": 0,
}

func (x WalletExhaustDetection_Method) String() string {
	return proto.EnumName(WalletExhaustDetection_Method_name, int32(x))
}

func (WalletExhaustDetection_Method) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{3, 0}
}

// UE allocator type.
type MobilityD_IpAllocatorType int32

const (
	MobilityD_IP_POOL MobilityD_IpAllocatorType = 0
	MobilityD_DHCP    MobilityD_IpAllocatorType = 1
)

var MobilityD_IpAllocatorType_name = map[int32]string{
	0: "IP_POOL",
	1: "DHCP",
}

var MobilityD_IpAllocatorType_value = map[string]int32{
	"IP_POOL": 0,
	"DHCP":    1,
}

func (x MobilityD_IpAllocatorType) String() string {
	return proto.EnumName(MobilityD_IpAllocatorType_name, int32(x))
}

func (MobilityD_IpAllocatorType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{6, 0}
}

// (0)Turning off NonEPS service, (1)Both CSFB and SMS, (2)only SMS
type MME_NonEPSServiceControl int32

const (
	MME_NON_EPS_SERVICE_CONTROL_OFF       MME_NonEPSServiceControl = 0
	MME_NON_EPS_SERVICE_CONTROL_CSFB_SMS  MME_NonEPSServiceControl = 1
	MME_NON_EPS_SERVICE_CONTROL_SMS       MME_NonEPSServiceControl = 2
	MME_NON_EPS_SERVICE_CONTROL_SMS_ORC8R MME_NonEPSServiceControl = 3
)

var MME_NonEPSServiceControl_name = map[int32]string{
	0: "NON_EPS_SERVICE_CONTROL_OFF",
	1: "NON_EPS_SERVICE_CONTROL_CSFB_SMS",
	2: "NON_EPS_SERVICE_CONTROL_SMS",
	3: "NON_EPS_SERVICE_CONTROL_SMS_ORC8R",
}

var MME_NonEPSServiceControl_value = map[string]int32{
	"NON_EPS_SERVICE_CONTROL_OFF":       0,
	"NON_EPS_SERVICE_CONTROL_CSFB_SMS":  1,
	"NON_EPS_SERVICE_CONTROL_SMS":       2,
	"NON_EPS_SERVICE_CONTROL_SMS_ORC8R": 3,
}

func (x MME_NonEPSServiceControl) String() string {
	return proto.EnumName(MME_NonEPSServiceControl_name, int32(x))
}

func (MME_NonEPSServiceControl) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{7, 0}
}

//------------------------------------------------------------------------------
// EnodebD configs
//------------------------------------------------------------------------------
type EnodebD struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// Physical cell ID (0-504)
	Pci int32 `protobuf:"varint,2,opt,name=pci,proto3" json:"pci,omitempty"`
	// Frequency channel number. See niviuk.free.fr/lte_band.php for mapping to
	// frequency
	Earfcndl int32 `protobuf:"varint,3,opt,name=earfcndl,proto3" json:"earfcndl,omitempty"`
	// Bandwidth in MHz, from set {1.4, 3, 5, 10, 15, 20}
	BandwidthMhz int32 `protobuf:"varint,4,opt,name=bandwidth_mhz,json=bandwidthMhz,proto3" json:"bandwidth_mhz,omitempty"`
	// Network operator identifier.
	PlmnidList string `protobuf:"bytes,5,opt,name=plmnid_list,json=plmnidList,proto3" json:"plmnid_list,omitempty"`
	// TDD subframe config parameter. See http://niviuk.free.fr/lte_tdd.php
	SubframeAssignment int32 `protobuf:"varint,6,opt,name=subframe_assignment,json=subframeAssignment,proto3" json:"subframe_assignment,omitempty"`
	// TDD subframe config parameter. See http://niviuk.free.fr/lte_tdd.php
	SpecialSubframePattern int32 `protobuf:"varint,7,opt,name=special_subframe_pattern,json=specialSubframePattern,proto3" json:"special_subframe_pattern,omitempty"`
	// Enable eNodeB
	AllowEnodebTransmit bool `protobuf:"varint,8,opt,name=allow_enodeb_transmit,json=allowEnodebTransmit,proto3" json:"allow_enodeb_transmit,omitempty"`
	// Tracking area code. 16-bit
	Tac int32 `protobuf:"varint,9,opt,name=tac,proto3" json:"tac,omitempty"`
	// RAT type (2G/3G), used by eNB
	CsfbRat EnodebD_CSFBRat `protobuf:"varint,10,opt,name=csfb_rat,json=csfbRat,proto3,enum=magma.mconfig.EnodebD_CSFBRat" json:"csfb_rat,omitempty"`
	// 2G RAT frequencies /ARFCNs for redirection, used by eNB
	Arfcn_2G             []int32                          `protobuf:"varint,11,rep,packed,name=arfcn_2g,json=arfcn2g,proto3" json:"arfcn_2g,omitempty"`
	TddConfig            *EnodebD_TDDConfig               `protobuf:"bytes,12,opt,name=tdd_config,json=tddConfig,proto3" json:"tdd_config,omitempty"`
	FddConfig            *EnodebD_FDDConfig               `protobuf:"bytes,13,opt,name=fdd_config,json=fddConfig,proto3" json:"fdd_config,omitempty"`
	EnbConfigsBySerial   map[string]*EnodebD_EnodebConfig `protobuf:"bytes,14,rep,name=enb_configs_by_serial,json=enbConfigsBySerial,proto3" json:"enb_configs_by_serial,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

func (m *EnodebD) Reset()         { *m = EnodebD{} }
func (m *EnodebD) String() string { return proto.CompactTextString(m) }
func (*EnodebD) ProtoMessage()    {}
func (*EnodebD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{0}
}

func (m *EnodebD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EnodebD.Unmarshal(m, b)
}
func (m *EnodebD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EnodebD.Marshal(b, m, deterministic)
}
func (m *EnodebD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EnodebD.Merge(m, src)
}
func (m *EnodebD) XXX_Size() int {
	return xxx_messageInfo_EnodebD.Size(m)
}
func (m *EnodebD) XXX_DiscardUnknown() {
	xxx_messageInfo_EnodebD.DiscardUnknown(m)
}

var xxx_messageInfo_EnodebD proto.InternalMessageInfo

func (m *EnodebD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *EnodebD) GetPci() int32 {
	if m != nil {
		return m.Pci
	}
	return 0
}

func (m *EnodebD) GetEarfcndl() int32 {
	if m != nil {
		return m.Earfcndl
	}
	return 0
}

func (m *EnodebD) GetBandwidthMhz() int32 {
	if m != nil {
		return m.BandwidthMhz
	}
	return 0
}

func (m *EnodebD) GetPlmnidList() string {
	if m != nil {
		return m.PlmnidList
	}
	return ""
}

func (m *EnodebD) GetSubframeAssignment() int32 {
	if m != nil {
		return m.SubframeAssignment
	}
	return 0
}

func (m *EnodebD) GetSpecialSubframePattern() int32 {
	if m != nil {
		return m.SpecialSubframePattern
	}
	return 0
}

func (m *EnodebD) GetAllowEnodebTransmit() bool {
	if m != nil {
		return m.AllowEnodebTransmit
	}
	return false
}

func (m *EnodebD) GetTac() int32 {
	if m != nil {
		return m.Tac
	}
	return 0
}

func (m *EnodebD) GetCsfbRat() EnodebD_CSFBRat {
	if m != nil {
		return m.CsfbRat
	}
	return EnodebD_CSFBRAT_2G
}

func (m *EnodebD) GetArfcn_2G() []int32 {
	if m != nil {
		return m.Arfcn_2G
	}
	return nil
}

func (m *EnodebD) GetTddConfig() *EnodebD_TDDConfig {
	if m != nil {
		return m.TddConfig
	}
	return nil
}

func (m *EnodebD) GetFddConfig() *EnodebD_FDDConfig {
	if m != nil {
		return m.FddConfig
	}
	return nil
}

func (m *EnodebD) GetEnbConfigsBySerial() map[string]*EnodebD_EnodebConfig {
	if m != nil {
		return m.EnbConfigsBySerial
	}
	return nil
}

type EnodebD_FDDConfig struct {
	Earfcndl             int32    `protobuf:"varint,1,opt,name=earfcndl,proto3" json:"earfcndl,omitempty"`
	Earfcnul             int32    `protobuf:"varint,2,opt,name=earfcnul,proto3" json:"earfcnul,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *EnodebD_FDDConfig) Reset()         { *m = EnodebD_FDDConfig{} }
func (m *EnodebD_FDDConfig) String() string { return proto.CompactTextString(m) }
func (*EnodebD_FDDConfig) ProtoMessage()    {}
func (*EnodebD_FDDConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{0, 0}
}

func (m *EnodebD_FDDConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EnodebD_FDDConfig.Unmarshal(m, b)
}
func (m *EnodebD_FDDConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EnodebD_FDDConfig.Marshal(b, m, deterministic)
}
func (m *EnodebD_FDDConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EnodebD_FDDConfig.Merge(m, src)
}
func (m *EnodebD_FDDConfig) XXX_Size() int {
	return xxx_messageInfo_EnodebD_FDDConfig.Size(m)
}
func (m *EnodebD_FDDConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_EnodebD_FDDConfig.DiscardUnknown(m)
}

var xxx_messageInfo_EnodebD_FDDConfig proto.InternalMessageInfo

func (m *EnodebD_FDDConfig) GetEarfcndl() int32 {
	if m != nil {
		return m.Earfcndl
	}
	return 0
}

func (m *EnodebD_FDDConfig) GetEarfcnul() int32 {
	if m != nil {
		return m.Earfcnul
	}
	return 0
}

type EnodebD_TDDConfig struct {
	Earfcndl int32 `protobuf:"varint,1,opt,name=earfcndl,proto3" json:"earfcndl,omitempty"`
	// TDD subframe config parameter. See http://niviuk.free.fr/lte_tdd.php
	SubframeAssignment int32 `protobuf:"varint,2,opt,name=subframe_assignment,json=subframeAssignment,proto3" json:"subframe_assignment,omitempty"`
	// TDD subframe config parameter. See http://niviuk.free.fr/lte_tdd.php
	SpecialSubframePattern int32    `protobuf:"varint,3,opt,name=special_subframe_pattern,json=specialSubframePattern,proto3" json:"special_subframe_pattern,omitempty"`
	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
	XXX_unrecognized       []byte   `json:"-"`
	XXX_sizecache          int32    `json:"-"`
}

func (m *EnodebD_TDDConfig) Reset()         { *m = EnodebD_TDDConfig{} }
func (m *EnodebD_TDDConfig) String() string { return proto.CompactTextString(m) }
func (*EnodebD_TDDConfig) ProtoMessage()    {}
func (*EnodebD_TDDConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{0, 1}
}

func (m *EnodebD_TDDConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EnodebD_TDDConfig.Unmarshal(m, b)
}
func (m *EnodebD_TDDConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EnodebD_TDDConfig.Marshal(b, m, deterministic)
}
func (m *EnodebD_TDDConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EnodebD_TDDConfig.Merge(m, src)
}
func (m *EnodebD_TDDConfig) XXX_Size() int {
	return xxx_messageInfo_EnodebD_TDDConfig.Size(m)
}
func (m *EnodebD_TDDConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_EnodebD_TDDConfig.DiscardUnknown(m)
}

var xxx_messageInfo_EnodebD_TDDConfig proto.InternalMessageInfo

func (m *EnodebD_TDDConfig) GetEarfcndl() int32 {
	if m != nil {
		return m.Earfcndl
	}
	return 0
}

func (m *EnodebD_TDDConfig) GetSubframeAssignment() int32 {
	if m != nil {
		return m.SubframeAssignment
	}
	return 0
}

func (m *EnodebD_TDDConfig) GetSpecialSubframePattern() int32 {
	if m != nil {
		return m.SpecialSubframePattern
	}
	return 0
}

type EnodebD_EnodebConfig struct {
	// Device-unique serial ID. Used to identify the eNodeB, and ties the
	// config to that device
	Earfcndl               int32    `protobuf:"varint,1,opt,name=earfcndl,proto3" json:"earfcndl,omitempty"`
	SubframeAssignment     int32    `protobuf:"varint,2,opt,name=subframe_assignment,json=subframeAssignment,proto3" json:"subframe_assignment,omitempty"`
	SpecialSubframePattern int32    `protobuf:"varint,3,opt,name=special_subframe_pattern,json=specialSubframePattern,proto3" json:"special_subframe_pattern,omitempty"`
	Pci                    int32    `protobuf:"varint,4,opt,name=pci,proto3" json:"pci,omitempty"`
	TransmitEnabled        bool     `protobuf:"varint,5,opt,name=transmit_enabled,json=transmitEnabled,proto3" json:"transmit_enabled,omitempty"`
	DeviceClass            string   `protobuf:"bytes,6,opt,name=device_class,json=deviceClass,proto3" json:"device_class,omitempty"`
	BandwidthMhz           int32    `protobuf:"varint,7,opt,name=bandwidth_mhz,json=bandwidthMhz,proto3" json:"bandwidth_mhz,omitempty"`
	Tac                    int32    `protobuf:"varint,8,opt,name=tac,proto3" json:"tac,omitempty"`
	CellId                 int32    `protobuf:"varint,9,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"`
	IpAddress              string   `protobuf:"bytes,10,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
	XXX_unrecognized       []byte   `json:"-"`
	XXX_sizecache          int32    `json:"-"`
}

func (m *EnodebD_EnodebConfig) Reset()         { *m = EnodebD_EnodebConfig{} }
func (m *EnodebD_EnodebConfig) String() string { return proto.CompactTextString(m) }
func (*EnodebD_EnodebConfig) ProtoMessage()    {}
func (*EnodebD_EnodebConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{0, 2}
}

func (m *EnodebD_EnodebConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_EnodebD_EnodebConfig.Unmarshal(m, b)
}
func (m *EnodebD_EnodebConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_EnodebD_EnodebConfig.Marshal(b, m, deterministic)
}
func (m *EnodebD_EnodebConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_EnodebD_EnodebConfig.Merge(m, src)
}
func (m *EnodebD_EnodebConfig) XXX_Size() int {
	return xxx_messageInfo_EnodebD_EnodebConfig.Size(m)
}
func (m *EnodebD_EnodebConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_EnodebD_EnodebConfig.DiscardUnknown(m)
}

var xxx_messageInfo_EnodebD_EnodebConfig proto.InternalMessageInfo

func (m *EnodebD_EnodebConfig) GetEarfcndl() int32 {
	if m != nil {
		return m.Earfcndl
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetSubframeAssignment() int32 {
	if m != nil {
		return m.SubframeAssignment
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetSpecialSubframePattern() int32 {
	if m != nil {
		return m.SpecialSubframePattern
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetPci() int32 {
	if m != nil {
		return m.Pci
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetTransmitEnabled() bool {
	if m != nil {
		return m.TransmitEnabled
	}
	return false
}

func (m *EnodebD_EnodebConfig) GetDeviceClass() string {
	if m != nil {
		return m.DeviceClass
	}
	return ""
}

func (m *EnodebD_EnodebConfig) GetBandwidthMhz() int32 {
	if m != nil {
		return m.BandwidthMhz
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetTac() int32 {
	if m != nil {
		return m.Tac
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetCellId() int32 {
	if m != nil {
		return m.CellId
	}
	return 0
}

func (m *EnodebD_EnodebConfig) GetIpAddress() string {
	if m != nil {
		return m.IpAddress
	}
	return ""
}

//------------------------------------------------------------------------------
// PipelineD configs
//------------------------------------------------------------------------------
type PipelineD struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// Range of IPs allocated to UEs
	UeIpBlock string `protobuf:"bytes,2,opt,name=ue_ip_block,json=ueIpBlock,proto3" json:"ue_ip_block,omitempty"`
	// Whether NAT is enabled
	NatEnabled bool `protobuf:"varint,3,opt,name=nat_enabled,json=natEnabled,proto3" json:"nat_enabled,omitempty"`
	// repeated PolicyRule policy_rules = 5; // Policies have moved to policydb.proto
	DefaultRuleId            string                      `protobuf:"bytes,6,opt,name=default_rule_id,json=defaultRuleId,proto3" json:"default_rule_id,omitempty"`
	Services                 []PipelineD_NetworkServices `protobuf:"varint,8,rep,packed,name=services,proto3,enum=magma.mconfig.PipelineD_NetworkServices" json:"services,omitempty"`
	AllowedGrePeers          []*PipelineD_AllowedGrePeer `protobuf:"bytes,9,rep,name=allowed_gre_peers,json=allowedGrePeers,proto3" json:"allowed_gre_peers,omitempty"`
	IpdrExportDst            *PipelineD_IPDRExportDst    `protobuf:"bytes,10,opt,name=ipdr_export_dst,json=ipdrExportDst,proto3" json:"ipdr_export_dst,omitempty"`
	LiUes                    *PipelineD_LiUes            `protobuf:"bytes,12,opt,name=li_ues,json=liUes,proto3" json:"li_ues,omitempty"`
	SgiManagementIfaceVlan   string                      `protobuf:"bytes,13,opt,name=sgi_management_iface_vlan,json=sgiManagementIfaceVlan,proto3" json:"sgi_management_iface_vlan,omitempty"`
	SgiManagementIfaceIpAddr string                      `protobuf:"bytes,14,opt,name=sgi_management_iface_ip_addr,json=sgiManagementIfaceIpAddr,proto3" json:"sgi_management_iface_ip_addr,omitempty"`
	SgiManagementIfaceGw     string                      `protobuf:"bytes,15,opt,name=sgi_management_iface_gw,json=sgiManagementIfaceGw,proto3" json:"sgi_management_iface_gw,omitempty"`
	XXX_NoUnkeyedLiteral     struct{}                    `json:"-"`
	XXX_unrecognized         []byte                      `json:"-"`
	XXX_sizecache            int32                       `json:"-"`
}

func (m *PipelineD) Reset()         { *m = PipelineD{} }
func (m *PipelineD) String() string { return proto.CompactTextString(m) }
func (*PipelineD) ProtoMessage()    {}
func (*PipelineD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{1}
}

func (m *PipelineD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PipelineD.Unmarshal(m, b)
}
func (m *PipelineD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PipelineD.Marshal(b, m, deterministic)
}
func (m *PipelineD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PipelineD.Merge(m, src)
}
func (m *PipelineD) XXX_Size() int {
	return xxx_messageInfo_PipelineD.Size(m)
}
func (m *PipelineD) XXX_DiscardUnknown() {
	xxx_messageInfo_PipelineD.DiscardUnknown(m)
}

var xxx_messageInfo_PipelineD proto.InternalMessageInfo

func (m *PipelineD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *PipelineD) GetUeIpBlock() string {
	if m != nil {
		return m.UeIpBlock
	}
	return ""
}

func (m *PipelineD) GetNatEnabled() bool {
	if m != nil {
		return m.NatEnabled
	}
	return false
}

func (m *PipelineD) GetDefaultRuleId() string {
	if m != nil {
		return m.DefaultRuleId
	}
	return ""
}

func (m *PipelineD) GetServices() []PipelineD_NetworkServices {
	if m != nil {
		return m.Services
	}
	return nil
}

func (m *PipelineD) GetAllowedGrePeers() []*PipelineD_AllowedGrePeer {
	if m != nil {
		return m.AllowedGrePeers
	}
	return nil
}

func (m *PipelineD) GetIpdrExportDst() *PipelineD_IPDRExportDst {
	if m != nil {
		return m.IpdrExportDst
	}
	return nil
}

func (m *PipelineD) GetLiUes() *PipelineD_LiUes {
	if m != nil {
		return m.LiUes
	}
	return nil
}

func (m *PipelineD) GetSgiManagementIfaceVlan() string {
	if m != nil {
		return m.SgiManagementIfaceVlan
	}
	return ""
}

func (m *PipelineD) GetSgiManagementIfaceIpAddr() string {
	if m != nil {
		return m.SgiManagementIfaceIpAddr
	}
	return ""
}

func (m *PipelineD) GetSgiManagementIfaceGw() string {
	if m != nil {
		return m.SgiManagementIfaceGw
	}
	return ""
}

type PipelineD_AllowedGrePeer struct {
	Ip                   string   `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	Key                  uint32   `protobuf:"varint,2,opt,name=key,proto3" json:"key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PipelineD_AllowedGrePeer) Reset()         { *m = PipelineD_AllowedGrePeer{} }
func (m *PipelineD_AllowedGrePeer) String() string { return proto.CompactTextString(m) }
func (*PipelineD_AllowedGrePeer) ProtoMessage()    {}
func (*PipelineD_AllowedGrePeer) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{1, 0}
}

func (m *PipelineD_AllowedGrePeer) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PipelineD_AllowedGrePeer.Unmarshal(m, b)
}
func (m *PipelineD_AllowedGrePeer) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PipelineD_AllowedGrePeer.Marshal(b, m, deterministic)
}
func (m *PipelineD_AllowedGrePeer) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PipelineD_AllowedGrePeer.Merge(m, src)
}
func (m *PipelineD_AllowedGrePeer) XXX_Size() int {
	return xxx_messageInfo_PipelineD_AllowedGrePeer.Size(m)
}
func (m *PipelineD_AllowedGrePeer) XXX_DiscardUnknown() {
	xxx_messageInfo_PipelineD_AllowedGrePeer.DiscardUnknown(m)
}

var xxx_messageInfo_PipelineD_AllowedGrePeer proto.InternalMessageInfo

func (m *PipelineD_AllowedGrePeer) GetIp() string {
	if m != nil {
		return m.Ip
	}
	return ""
}

func (m *PipelineD_AllowedGrePeer) GetKey() uint32 {
	if m != nil {
		return m.Key
	}
	return 0
}

type PipelineD_IPDRExportDst struct {
	Ip                   string   `protobuf:"bytes,1,opt,name=ip,proto3" json:"ip,omitempty"`
	Port                 uint32   `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PipelineD_IPDRExportDst) Reset()         { *m = PipelineD_IPDRExportDst{} }
func (m *PipelineD_IPDRExportDst) String() string { return proto.CompactTextString(m) }
func (*PipelineD_IPDRExportDst) ProtoMessage()    {}
func (*PipelineD_IPDRExportDst) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{1, 1}
}

func (m *PipelineD_IPDRExportDst) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PipelineD_IPDRExportDst.Unmarshal(m, b)
}
func (m *PipelineD_IPDRExportDst) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PipelineD_IPDRExportDst.Marshal(b, m, deterministic)
}
func (m *PipelineD_IPDRExportDst) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PipelineD_IPDRExportDst.Merge(m, src)
}
func (m *PipelineD_IPDRExportDst) XXX_Size() int {
	return xxx_messageInfo_PipelineD_IPDRExportDst.Size(m)
}
func (m *PipelineD_IPDRExportDst) XXX_DiscardUnknown() {
	xxx_messageInfo_PipelineD_IPDRExportDst.DiscardUnknown(m)
}

var xxx_messageInfo_PipelineD_IPDRExportDst proto.InternalMessageInfo

func (m *PipelineD_IPDRExportDst) GetIp() string {
	if m != nil {
		return m.Ip
	}
	return ""
}

func (m *PipelineD_IPDRExportDst) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

type PipelineD_LiUes struct {
	Imsis                []string `protobuf:"bytes,1,rep,name=imsis,proto3" json:"imsis,omitempty"`
	Msisdns              []string `protobuf:"bytes,2,rep,name=msisdns,proto3" json:"msisdns,omitempty"`
	Macs                 []string `protobuf:"bytes,3,rep,name=macs,proto3" json:"macs,omitempty"`
	Ips                  []string `protobuf:"bytes,4,rep,name=ips,proto3" json:"ips,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PipelineD_LiUes) Reset()         { *m = PipelineD_LiUes{} }
func (m *PipelineD_LiUes) String() string { return proto.CompactTextString(m) }
func (*PipelineD_LiUes) ProtoMessage()    {}
func (*PipelineD_LiUes) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{1, 2}
}

func (m *PipelineD_LiUes) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PipelineD_LiUes.Unmarshal(m, b)
}
func (m *PipelineD_LiUes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PipelineD_LiUes.Marshal(b, m, deterministic)
}
func (m *PipelineD_LiUes) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PipelineD_LiUes.Merge(m, src)
}
func (m *PipelineD_LiUes) XXX_Size() int {
	return xxx_messageInfo_PipelineD_LiUes.Size(m)
}
func (m *PipelineD_LiUes) XXX_DiscardUnknown() {
	xxx_messageInfo_PipelineD_LiUes.DiscardUnknown(m)
}

var xxx_messageInfo_PipelineD_LiUes proto.InternalMessageInfo

func (m *PipelineD_LiUes) GetImsis() []string {
	if m != nil {
		return m.Imsis
	}
	return nil
}

func (m *PipelineD_LiUes) GetMsisdns() []string {
	if m != nil {
		return m.Msisdns
	}
	return nil
}

func (m *PipelineD_LiUes) GetMacs() []string {
	if m != nil {
		return m.Macs
	}
	return nil
}

func (m *PipelineD_LiUes) GetIps() []string {
	if m != nil {
		return m.Ips
	}
	return nil
}

//------------------------------------------------------------------------------
// SessionD configs
//------------------------------------------------------------------------------
type SessionD struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// DEPRECATED
	// Enable forwarding S6a related requests to Federated GW
	RelayEnabled           bool                    `protobuf:"varint,2,opt,name=relay_enabled,json=relayEnabled,proto3" json:"relay_enabled,omitempty"`
	WalletExhaustDetection *WalletExhaustDetection `protobuf:"bytes,3,opt,name=wallet_exhaust_detection,json=walletExhaustDetection,proto3" json:"wallet_exhaust_detection,omitempty"`
	// Enable relaying Gx/Gy messages via FeG RPC
	GxGyRelayEnabled     bool     `protobuf:"varint,4,opt,name=gx_gy_relay_enabled,json=gxGyRelayEnabled,proto3" json:"gx_gy_relay_enabled,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SessionD) Reset()         { *m = SessionD{} }
func (m *SessionD) String() string { return proto.CompactTextString(m) }
func (*SessionD) ProtoMessage()    {}
func (*SessionD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{2}
}

func (m *SessionD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SessionD.Unmarshal(m, b)
}
func (m *SessionD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SessionD.Marshal(b, m, deterministic)
}
func (m *SessionD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SessionD.Merge(m, src)
}
func (m *SessionD) XXX_Size() int {
	return xxx_messageInfo_SessionD.Size(m)
}
func (m *SessionD) XXX_DiscardUnknown() {
	xxx_messageInfo_SessionD.DiscardUnknown(m)
}

var xxx_messageInfo_SessionD proto.InternalMessageInfo

func (m *SessionD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *SessionD) GetRelayEnabled() bool {
	if m != nil {
		return m.RelayEnabled
	}
	return false
}

func (m *SessionD) GetWalletExhaustDetection() *WalletExhaustDetection {
	if m != nil {
		return m.WalletExhaustDetection
	}
	return nil
}

func (m *SessionD) GetGxGyRelayEnabled() bool {
	if m != nil {
		return m.GxGyRelayEnabled
	}
	return false
}

type WalletExhaustDetection struct {
	// Enable the feature where session is terminated on wallet exhaust
	TerminateOnExhaust bool `protobuf:"varint,1,opt,name=terminate_on_exhaust,json=terminateOnExhaust,proto3" json:"terminate_on_exhaust,omitempty"`
	// How wallet exhast is detected on SessionD
	Method WalletExhaustDetection_Method `protobuf:"varint,2,opt,name=method,proto3,enum=magma.mconfig.WalletExhaustDetection_Method" json:"method,omitempty"`
	// How long to wait before terminating a out-of-wallet subscriber on attach
	TimeoutMs            uint32   `protobuf:"varint,3,opt,name=timeout_ms,json=timeoutMs,proto3" json:"timeout_ms,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *WalletExhaustDetection) Reset()         { *m = WalletExhaustDetection{} }
func (m *WalletExhaustDetection) String() string { return proto.CompactTextString(m) }
func (*WalletExhaustDetection) ProtoMessage()    {}
func (*WalletExhaustDetection) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{3}
}

func (m *WalletExhaustDetection) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_WalletExhaustDetection.Unmarshal(m, b)
}
func (m *WalletExhaustDetection) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_WalletExhaustDetection.Marshal(b, m, deterministic)
}
func (m *WalletExhaustDetection) XXX_Merge(src proto.Message) {
	xxx_messageInfo_WalletExhaustDetection.Merge(m, src)
}
func (m *WalletExhaustDetection) XXX_Size() int {
	return xxx_messageInfo_WalletExhaustDetection.Size(m)
}
func (m *WalletExhaustDetection) XXX_DiscardUnknown() {
	xxx_messageInfo_WalletExhaustDetection.DiscardUnknown(m)
}

var xxx_messageInfo_WalletExhaustDetection proto.InternalMessageInfo

func (m *WalletExhaustDetection) GetTerminateOnExhaust() bool {
	if m != nil {
		return m.TerminateOnExhaust
	}
	return false
}

func (m *WalletExhaustDetection) GetMethod() WalletExhaustDetection_Method {
	if m != nil {
		return m.Method
	}
	return WalletExhaustDetection_GxTrackedRules
}

func (m *WalletExhaustDetection) GetTimeoutMs() uint32 {
	if m != nil {
		return m.TimeoutMs
	}
	return 0
}

//------------------------------------------------------------------------------
// PolicyDB configs
//------------------------------------------------------------------------------
type PolicyDB struct {
	LogLevel             protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *PolicyDB) Reset()         { *m = PolicyDB{} }
func (m *PolicyDB) String() string { return proto.CompactTextString(m) }
func (*PolicyDB) ProtoMessage()    {}
func (*PolicyDB) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{4}
}

func (m *PolicyDB) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PolicyDB.Unmarshal(m, b)
}
func (m *PolicyDB) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PolicyDB.Marshal(b, m, deterministic)
}
func (m *PolicyDB) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PolicyDB.Merge(m, src)
}
func (m *PolicyDB) XXX_Size() int {
	return xxx_messageInfo_PolicyDB.Size(m)
}
func (m *PolicyDB) XXX_DiscardUnknown() {
	xxx_messageInfo_PolicyDB.DiscardUnknown(m)
}

var xxx_messageInfo_PolicyDB proto.InternalMessageInfo

func (m *PolicyDB) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

//------------------------------------------------------------------------------
// RedirectD configs
//------------------------------------------------------------------------------
type RedirectD struct {
	LogLevel             protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *RedirectD) Reset()         { *m = RedirectD{} }
func (m *RedirectD) String() string { return proto.CompactTextString(m) }
func (*RedirectD) ProtoMessage()    {}
func (*RedirectD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{5}
}

func (m *RedirectD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RedirectD.Unmarshal(m, b)
}
func (m *RedirectD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RedirectD.Marshal(b, m, deterministic)
}
func (m *RedirectD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RedirectD.Merge(m, src)
}
func (m *RedirectD) XXX_Size() int {
	return xxx_messageInfo_RedirectD.Size(m)
}
func (m *RedirectD) XXX_DiscardUnknown() {
	xxx_messageInfo_RedirectD.DiscardUnknown(m)
}

var xxx_messageInfo_RedirectD proto.InternalMessageInfo

func (m *RedirectD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

//------------------------------------------------------------------------------
// MobilityD configs
//------------------------------------------------------------------------------
type MobilityD struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// An IP block is a range of IP addresses specified by a network address and
	// a prefix-length of the netmask. For example,
	//    IPv4 IP block:      "192.168.0.0/24"
	//    IPv6 IP block:      "2401:db00:1116:301b::/64"
	IpBlock string `protobuf:"bytes,2,opt,name=ip_block,json=ipBlock,proto3" json:"ip_block,omitempty"`
	// ip allocation type, either dhcp or ip_pool
	// default is ip_pool
	IpAllocatorType MobilityD_IpAllocatorType `protobuf:"varint,3,opt,name=ip_allocator_type,json=ipAllocatorType,proto3,enum=magma.mconfig.MobilityD_IpAllocatorType" json:"ip_allocator_type,omitempty"`
	// Enable Static IP from subscriberDB
	StaticIpEnabled bool `protobuf:"varint,4,opt,name=static_ip_enabled,json=staticIpEnabled,proto3" json:"static_ip_enabled,omitempty"`
	// Enable multi APN IP allocation
	MultiApnIpAlloc      bool     `protobuf:"varint,5,opt,name=multi_apn_ip_alloc,json=multiApnIpAlloc,proto3" json:"multi_apn_ip_alloc,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MobilityD) Reset()         { *m = MobilityD{} }
func (m *MobilityD) String() string { return proto.CompactTextString(m) }
func (*MobilityD) ProtoMessage()    {}
func (*MobilityD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{6}
}

func (m *MobilityD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MobilityD.Unmarshal(m, b)
}
func (m *MobilityD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MobilityD.Marshal(b, m, deterministic)
}
func (m *MobilityD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MobilityD.Merge(m, src)
}
func (m *MobilityD) XXX_Size() int {
	return xxx_messageInfo_MobilityD.Size(m)
}
func (m *MobilityD) XXX_DiscardUnknown() {
	xxx_messageInfo_MobilityD.DiscardUnknown(m)
}

var xxx_messageInfo_MobilityD proto.InternalMessageInfo

func (m *MobilityD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *MobilityD) GetIpBlock() string {
	if m != nil {
		return m.IpBlock
	}
	return ""
}

func (m *MobilityD) GetIpAllocatorType() MobilityD_IpAllocatorType {
	if m != nil {
		return m.IpAllocatorType
	}
	return MobilityD_IP_POOL
}

func (m *MobilityD) GetStaticIpEnabled() bool {
	if m != nil {
		return m.StaticIpEnabled
	}
	return false
}

func (m *MobilityD) GetMultiApnIpAlloc() bool {
	if m != nil {
		return m.MultiApnIpAlloc
	}
	return false
}

//------------------------------------------------------------------------------
// MME configs
//------------------------------------------------------------------------------
type MME struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// Mobile country code
	Mcc string `protobuf:"bytes,2,opt,name=mcc,proto3" json:"mcc,omitempty"`
	// Mobile network code
	Mnc string `protobuf:"bytes,3,opt,name=mnc,proto3" json:"mnc,omitempty"`
	// [deprecated] Tracking area code. 16-bit
	// Is overrideen by field 15
	Tac int32 `protobuf:"varint,4,opt,name=tac,proto3" json:"tac,omitempty"`
	// MME group identifier - unique within a PLMN. 16-bit
	MmeGid int32 `protobuf:"varint,5,opt,name=mme_gid,json=mmeGid,proto3" json:"mme_gid,omitempty"`
	// MME code - unique within an MME group. 8-bit
	MmeCode int32 `protobuf:"varint,6,opt,name=mme_code,json=mmeCode,proto3" json:"mme_code,omitempty"`
	// Enable DNS Caching. Will be filled by DnsD
	EnableDnsCaching bool `protobuf:"varint,7,opt,name=enable_dns_caching,json=enableDnsCaching,proto3" json:"enable_dns_caching,omitempty"`
	// DEPRECATED
	// Enable credit control tracking with OCS and forwarding S6a related
	// requests to Federated GW
	RelayEnabled bool `protobuf:"varint,8,opt,name=relay_enabled,json=relayEnabled,proto3" json:"relay_enabled,omitempty"`
	// For indicating one of the four modes
	NonEpsServiceControl MME_NonEPSServiceControl `protobuf:"varint,9,opt,name=non_eps_service_control,json=nonEpsServiceControl,proto3,enum=magma.mconfig.MME_NonEPSServiceControl" json:"non_eps_service_control,omitempty"`
	// Mobile country code for CSFB
	CsfbMcc string `protobuf:"bytes,10,opt,name=csfb_mcc,json=csfbMcc,proto3" json:"csfb_mcc,omitempty"`
	// Mobile network code for CSFB
	CsfbMnc string `protobuf:"bytes,11,opt,name=csfb_mnc,json=csfbMnc,proto3" json:"csfb_mnc,omitempty"`
	// Location area code. 16-bit
	Lac int32 `protobuf:"varint,12,opt,name=lac,proto3" json:"lac,omitempty"`
	// If relay_enabled is false, this determines whether cloud subscriberdb
	// or local subscriberdb is used for authentication requests.
	CloudSubscriberdbEnabled bool `protobuf:"varint,14,opt,name=cloud_subscriberdb_enabled,json=cloudSubscriberdbEnabled,proto3" json:"cloud_subscriberdb_enabled,omitempty"`
	// The Tracking Area Code of every connected eNodeB needs to be
	// registered the MME.
	// Overrides field 4 if this is not empty. Field 4 is in the process of
	// being deprecated
	AttachedEnodebTacs []int32 `protobuf:"varint,15,rep,packed,name=attached_enodeb_tacs,json=attachedEnodebTacs,proto3" json:"attached_enodeb_tacs,omitempty"`
	// Primary DNS server
	DnsPrimary string `protobuf:"bytes,20,opt,name=dns_primary,json=dnsPrimary,proto3" json:"dns_primary,omitempty"`
	// Secondary DNS server
	DnsSecondary string `protobuf:"bytes,21,opt,name=dns_secondary,json=dnsSecondary,proto3" json:"dns_secondary,omitempty"`
	// Whether NAT is enabled
	NatEnabled bool `protobuf:"varint,22,opt,name=nat_enabled,json=natEnabled,proto3" json:"nat_enabled,omitempty"`
	// Enable relaying S6a messages via FeG RPC
	HssRelayEnabled bool `protobuf:"varint,23,opt,name=hss_relay_enabled,json=hssRelayEnabled,proto3" json:"hss_relay_enabled,omitempty"`
	// Apn Correction feature
	EnableApnCorrection  bool                    `protobuf:"varint,24,opt,name=enable_apn_correction,json=enableApnCorrection,proto3" json:"enable_apn_correction,omitempty"`
	ApnCorrectionMapList []*MME_ApnCorrectionMap `protobuf:"bytes,25,rep,name=apn_correction_map_list,json=apnCorrectionMapList,proto3" json:"apn_correction_map_list,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                `json:"-"`
	XXX_unrecognized     []byte                  `json:"-"`
	XXX_sizecache        int32                   `json:"-"`
}

func (m *MME) Reset()         { *m = MME{} }
func (m *MME) String() string { return proto.CompactTextString(m) }
func (*MME) ProtoMessage()    {}
func (*MME) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{7}
}

func (m *MME) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MME.Unmarshal(m, b)
}
func (m *MME) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MME.Marshal(b, m, deterministic)
}
func (m *MME) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MME.Merge(m, src)
}
func (m *MME) XXX_Size() int {
	return xxx_messageInfo_MME.Size(m)
}
func (m *MME) XXX_DiscardUnknown() {
	xxx_messageInfo_MME.DiscardUnknown(m)
}

var xxx_messageInfo_MME proto.InternalMessageInfo

func (m *MME) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *MME) GetMcc() string {
	if m != nil {
		return m.Mcc
	}
	return ""
}

func (m *MME) GetMnc() string {
	if m != nil {
		return m.Mnc
	}
	return ""
}

func (m *MME) GetTac() int32 {
	if m != nil {
		return m.Tac
	}
	return 0
}

func (m *MME) GetMmeGid() int32 {
	if m != nil {
		return m.MmeGid
	}
	return 0
}

func (m *MME) GetMmeCode() int32 {
	if m != nil {
		return m.MmeCode
	}
	return 0
}

func (m *MME) GetEnableDnsCaching() bool {
	if m != nil {
		return m.EnableDnsCaching
	}
	return false
}

func (m *MME) GetRelayEnabled() bool {
	if m != nil {
		return m.RelayEnabled
	}
	return false
}

func (m *MME) GetNonEpsServiceControl() MME_NonEPSServiceControl {
	if m != nil {
		return m.NonEpsServiceControl
	}
	return MME_NON_EPS_SERVICE_CONTROL_OFF
}

func (m *MME) GetCsfbMcc() string {
	if m != nil {
		return m.CsfbMcc
	}
	return ""
}

func (m *MME) GetCsfbMnc() string {
	if m != nil {
		return m.CsfbMnc
	}
	return ""
}

func (m *MME) GetLac() int32 {
	if m != nil {
		return m.Lac
	}
	return 0
}

func (m *MME) GetCloudSubscriberdbEnabled() bool {
	if m != nil {
		return m.CloudSubscriberdbEnabled
	}
	return false
}

func (m *MME) GetAttachedEnodebTacs() []int32 {
	if m != nil {
		return m.AttachedEnodebTacs
	}
	return nil
}

func (m *MME) GetDnsPrimary() string {
	if m != nil {
		return m.DnsPrimary
	}
	return ""
}

func (m *MME) GetDnsSecondary() string {
	if m != nil {
		return m.DnsSecondary
	}
	return ""
}

func (m *MME) GetNatEnabled() bool {
	if m != nil {
		return m.NatEnabled
	}
	return false
}

func (m *MME) GetHssRelayEnabled() bool {
	if m != nil {
		return m.HssRelayEnabled
	}
	return false
}

func (m *MME) GetEnableApnCorrection() bool {
	if m != nil {
		return m.EnableApnCorrection
	}
	return false
}

func (m *MME) GetApnCorrectionMapList() []*MME_ApnCorrectionMap {
	if m != nil {
		return m.ApnCorrectionMapList
	}
	return nil
}

type MME_ApnCorrectionMap struct {
	ImsiPrefix           string   `protobuf:"bytes,1,opt,name=imsi_prefix,json=imsiPrefix,proto3" json:"imsi_prefix,omitempty"`
	ApnOverride          string   `protobuf:"bytes,2,opt,name=apn_override,json=apnOverride,proto3" json:"apn_override,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MME_ApnCorrectionMap) Reset()         { *m = MME_ApnCorrectionMap{} }
func (m *MME_ApnCorrectionMap) String() string { return proto.CompactTextString(m) }
func (*MME_ApnCorrectionMap) ProtoMessage()    {}
func (*MME_ApnCorrectionMap) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{7, 0}
}

func (m *MME_ApnCorrectionMap) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MME_ApnCorrectionMap.Unmarshal(m, b)
}
func (m *MME_ApnCorrectionMap) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MME_ApnCorrectionMap.Marshal(b, m, deterministic)
}
func (m *MME_ApnCorrectionMap) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MME_ApnCorrectionMap.Merge(m, src)
}
func (m *MME_ApnCorrectionMap) XXX_Size() int {
	return xxx_messageInfo_MME_ApnCorrectionMap.Size(m)
}
func (m *MME_ApnCorrectionMap) XXX_DiscardUnknown() {
	xxx_messageInfo_MME_ApnCorrectionMap.DiscardUnknown(m)
}

var xxx_messageInfo_MME_ApnCorrectionMap proto.InternalMessageInfo

func (m *MME_ApnCorrectionMap) GetImsiPrefix() string {
	if m != nil {
		return m.ImsiPrefix
	}
	return ""
}

func (m *MME_ApnCorrectionMap) GetApnOverride() string {
	if m != nil {
		return m.ApnOverride
	}
	return ""
}

//------------------------------------------------------------------------------
// SubscriberDB configs
//------------------------------------------------------------------------------
type SubscriberDB struct {
	LogLevel protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	// Operator configuration field for LTE
	LteAuthOp []byte `protobuf:"bytes,2,opt,name=lte_auth_op,json=lteAuthOp,proto3" json:"lte_auth_op,omitempty"`
	// Authentication management field for LTE
	LteAuthAmf  []byte                                       `protobuf:"bytes,3,opt,name=lte_auth_amf,json=lteAuthAmf,proto3" json:"lte_auth_amf,omitempty"`
	SubProfiles map[string]*SubscriberDB_SubscriptionProfile `protobuf:"bytes,4,rep,name=sub_profiles,json=subProfiles,proto3" json:"sub_profiles,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// DEPRECATED
	// Enable forwarding S6a related requests to Federated GW
	RelayEnabled bool `protobuf:"varint,5,opt,name=relay_enabled,json=relayEnabled,proto3" json:"relay_enabled,omitempty"`
	// Enable relaying S6a messages via FeG RPC
	HssRelayEnabled      bool     `protobuf:"varint,6,opt,name=hss_relay_enabled,json=hssRelayEnabled,proto3" json:"hss_relay_enabled,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SubscriberDB) Reset()         { *m = SubscriberDB{} }
func (m *SubscriberDB) String() string { return proto.CompactTextString(m) }
func (*SubscriberDB) ProtoMessage()    {}
func (*SubscriberDB) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{8}
}

func (m *SubscriberDB) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SubscriberDB.Unmarshal(m, b)
}
func (m *SubscriberDB) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SubscriberDB.Marshal(b, m, deterministic)
}
func (m *SubscriberDB) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SubscriberDB.Merge(m, src)
}
func (m *SubscriberDB) XXX_Size() int {
	return xxx_messageInfo_SubscriberDB.Size(m)
}
func (m *SubscriberDB) XXX_DiscardUnknown() {
	xxx_messageInfo_SubscriberDB.DiscardUnknown(m)
}

var xxx_messageInfo_SubscriberDB proto.InternalMessageInfo

func (m *SubscriberDB) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *SubscriberDB) GetLteAuthOp() []byte {
	if m != nil {
		return m.LteAuthOp
	}
	return nil
}

func (m *SubscriberDB) GetLteAuthAmf() []byte {
	if m != nil {
		return m.LteAuthAmf
	}
	return nil
}

func (m *SubscriberDB) GetSubProfiles() map[string]*SubscriberDB_SubscriptionProfile {
	if m != nil {
		return m.SubProfiles
	}
	return nil
}

func (m *SubscriberDB) GetRelayEnabled() bool {
	if m != nil {
		return m.RelayEnabled
	}
	return false
}

func (m *SubscriberDB) GetHssRelayEnabled() bool {
	if m != nil {
		return m.HssRelayEnabled
	}
	return false
}

type SubscriberDB_SubscriptionProfile struct {
	// Maximum uplink bit rate (AMBR-UL)
	MaxUlBitRate uint64 `protobuf:"varint,1,opt,name=max_ul_bit_rate,json=maxUlBitRate,proto3" json:"max_ul_bit_rate,omitempty"`
	// Maximum downlink bit rate (AMBR-DL)
	MaxDlBitRate         uint64   `protobuf:"varint,2,opt,name=max_dl_bit_rate,json=maxDlBitRate,proto3" json:"max_dl_bit_rate,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SubscriberDB_SubscriptionProfile) Reset()         { *m = SubscriberDB_SubscriptionProfile{} }
func (m *SubscriberDB_SubscriptionProfile) String() string { return proto.CompactTextString(m) }
func (*SubscriberDB_SubscriptionProfile) ProtoMessage()    {}
func (*SubscriberDB_SubscriptionProfile) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{8, 0}
}

func (m *SubscriberDB_SubscriptionProfile) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SubscriberDB_SubscriptionProfile.Unmarshal(m, b)
}
func (m *SubscriberDB_SubscriptionProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SubscriberDB_SubscriptionProfile.Marshal(b, m, deterministic)
}
func (m *SubscriberDB_SubscriptionProfile) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SubscriberDB_SubscriptionProfile.Merge(m, src)
}
func (m *SubscriberDB_SubscriptionProfile) XXX_Size() int {
	return xxx_messageInfo_SubscriberDB_SubscriptionProfile.Size(m)
}
func (m *SubscriberDB_SubscriptionProfile) XXX_DiscardUnknown() {
	xxx_messageInfo_SubscriberDB_SubscriptionProfile.DiscardUnknown(m)
}

var xxx_messageInfo_SubscriberDB_SubscriptionProfile proto.InternalMessageInfo

func (m *SubscriberDB_SubscriptionProfile) GetMaxUlBitRate() uint64 {
	if m != nil {
		return m.MaxUlBitRate
	}
	return 0
}

func (m *SubscriberDB_SubscriptionProfile) GetMaxDlBitRate() uint64 {
	if m != nil {
		return m.MaxDlBitRate
	}
	return 0
}

//------------------------------------------------------------------------------
// LighttpD configs
//------------------------------------------------------------------------------
type LighttpD struct {
	LogLevel             protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	EnableCaching        bool            `protobuf:"varint,2,opt,name=enable_caching,json=enableCaching,proto3" json:"enable_caching,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *LighttpD) Reset()         { *m = LighttpD{} }
func (m *LighttpD) String() string { return proto.CompactTextString(m) }
func (*LighttpD) ProtoMessage()    {}
func (*LighttpD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{9}
}

func (m *LighttpD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_LighttpD.Unmarshal(m, b)
}
func (m *LighttpD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_LighttpD.Marshal(b, m, deterministic)
}
func (m *LighttpD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_LighttpD.Merge(m, src)
}
func (m *LighttpD) XXX_Size() int {
	return xxx_messageInfo_LighttpD.Size(m)
}
func (m *LighttpD) XXX_DiscardUnknown() {
	xxx_messageInfo_LighttpD.DiscardUnknown(m)
}

var xxx_messageInfo_LighttpD proto.InternalMessageInfo

func (m *LighttpD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *LighttpD) GetEnableCaching() bool {
	if m != nil {
		return m.EnableCaching
	}
	return false
}

//------------------------------------------------------------------------------
// MonitorD configs
//------------------------------------------------------------------------------
type MonitorD struct {
	LogLevel             protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	PollingInterval      int32           `protobuf:"varint,60,opt,name=polling_interval,json=pollingInterval,proto3" json:"polling_interval,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *MonitorD) Reset()         { *m = MonitorD{} }
func (m *MonitorD) String() string { return proto.CompactTextString(m) }
func (*MonitorD) ProtoMessage()    {}
func (*MonitorD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{10}
}

func (m *MonitorD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MonitorD.Unmarshal(m, b)
}
func (m *MonitorD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MonitorD.Marshal(b, m, deterministic)
}
func (m *MonitorD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MonitorD.Merge(m, src)
}
func (m *MonitorD) XXX_Size() int {
	return xxx_messageInfo_MonitorD.Size(m)
}
func (m *MonitorD) XXX_DiscardUnknown() {
	xxx_messageInfo_MonitorD.DiscardUnknown(m)
}

var xxx_messageInfo_MonitorD proto.InternalMessageInfo

func (m *MonitorD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *MonitorD) GetPollingInterval() int32 {
	if m != nil {
		return m.PollingInterval
	}
	return 0
}

//------------------------------------------------------------------------------
// DPID configs
//------------------------------------------------------------------------------
type DPID struct {
	LogLevel             protos.LogLevel `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
	XXX_unrecognized     []byte          `json:"-"`
	XXX_sizecache        int32           `json:"-"`
}

func (m *DPID) Reset()         { *m = DPID{} }
func (m *DPID) String() string { return proto.CompactTextString(m) }
func (*DPID) ProtoMessage()    {}
func (*DPID) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{11}
}

func (m *DPID) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DPID.Unmarshal(m, b)
}
func (m *DPID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DPID.Marshal(b, m, deterministic)
}
func (m *DPID) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DPID.Merge(m, src)
}
func (m *DPID) XXX_Size() int {
	return xxx_messageInfo_DPID.Size(m)
}
func (m *DPID) XXX_DiscardUnknown() {
	xxx_messageInfo_DPID.DiscardUnknown(m)
}

var xxx_messageInfo_DPID proto.InternalMessageInfo

func (m *DPID) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

//------------------------------------------------------------------------------
// DnsD configs
//------------------------------------------------------------------------------
type DnsD struct {
	LogLevel             protos.LogLevel                 `protobuf:"varint,1,opt,name=log_level,json=logLevel,proto3,enum=magma.orc8r.LogLevel" json:"log_level,omitempty"`
	EnableCaching        bool                            `protobuf:"varint,2,opt,name=enable_caching,json=enableCaching,proto3" json:"enable_caching,omitempty"`
	LocalTTL             int32                           `protobuf:"varint,3,opt,name=localTTL,proto3" json:"localTTL,omitempty"`
	Records              []*GatewayDNSConfigRecordsItems `protobuf:"bytes,4,rep,name=records,proto3" json:"records,omitempty"`
	DhcpServerEnabled    bool                            `protobuf:"varint,5,opt,name=dhcp_server_enabled,json=dhcpServerEnabled,proto3" json:"dhcp_server_enabled,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                        `json:"-"`
	XXX_unrecognized     []byte                          `json:"-"`
	XXX_sizecache        int32                           `json:"-"`
}

func (m *DnsD) Reset()         { *m = DnsD{} }
func (m *DnsD) String() string { return proto.CompactTextString(m) }
func (*DnsD) ProtoMessage()    {}
func (*DnsD) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{12}
}

func (m *DnsD) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DnsD.Unmarshal(m, b)
}
func (m *DnsD) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DnsD.Marshal(b, m, deterministic)
}
func (m *DnsD) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DnsD.Merge(m, src)
}
func (m *DnsD) XXX_Size() int {
	return xxx_messageInfo_DnsD.Size(m)
}
func (m *DnsD) XXX_DiscardUnknown() {
	xxx_messageInfo_DnsD.DiscardUnknown(m)
}

var xxx_messageInfo_DnsD proto.InternalMessageInfo

func (m *DnsD) GetLogLevel() protos.LogLevel {
	if m != nil {
		return m.LogLevel
	}
	return protos.LogLevel_DEBUG
}

func (m *DnsD) GetEnableCaching() bool {
	if m != nil {
		return m.EnableCaching
	}
	return false
}

func (m *DnsD) GetLocalTTL() int32 {
	if m != nil {
		return m.LocalTTL
	}
	return 0
}

func (m *DnsD) GetRecords() []*GatewayDNSConfigRecordsItems {
	if m != nil {
		return m.Records
	}
	return nil
}

func (m *DnsD) GetDhcpServerEnabled() bool {
	if m != nil {
		return m.DhcpServerEnabled
	}
	return false
}

type GatewayDNSConfigRecordsItems struct {
	ARecord              []string `protobuf:"bytes,1,rep,name=a_record,json=aRecord,proto3" json:"a_record,omitempty"`
	AaaaRecord           []string `protobuf:"bytes,2,rep,name=aaaa_record,json=aaaaRecord,proto3" json:"aaaa_record,omitempty"`
	CnameRecord          []string `protobuf:"bytes,3,rep,name=cname_record,json=cnameRecord,proto3" json:"cname_record,omitempty"`
	Domain               string   `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GatewayDNSConfigRecordsItems) Reset()         { *m = GatewayDNSConfigRecordsItems{} }
func (m *GatewayDNSConfigRecordsItems) String() string { return proto.CompactTextString(m) }
func (*GatewayDNSConfigRecordsItems) ProtoMessage()    {}
func (*GatewayDNSConfigRecordsItems) Descriptor() ([]byte, []int) {
	return fileDescriptor_cb46bfd77f2ecf71, []int{13}
}

func (m *GatewayDNSConfigRecordsItems) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GatewayDNSConfigRecordsItems.Unmarshal(m, b)
}
func (m *GatewayDNSConfigRecordsItems) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GatewayDNSConfigRecordsItems.Marshal(b, m, deterministic)
}
func (m *GatewayDNSConfigRecordsItems) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GatewayDNSConfigRecordsItems.Merge(m, src)
}
func (m *GatewayDNSConfigRecordsItems) XXX_Size() int {
	return xxx_messageInfo_GatewayDNSConfigRecordsItems.Size(m)
}
func (m *GatewayDNSConfigRecordsItems) XXX_DiscardUnknown() {
	xxx_messageInfo_GatewayDNSConfigRecordsItems.DiscardUnknown(m)
}

var xxx_messageInfo_GatewayDNSConfigRecordsItems proto.InternalMessageInfo

func (m *GatewayDNSConfigRecordsItems) GetARecord() []string {
	if m != nil {
		return m.ARecord
	}
	return nil
}

func (m *GatewayDNSConfigRecordsItems) GetAaaaRecord() []string {
	if m != nil {
		return m.AaaaRecord
	}
	return nil
}

func (m *GatewayDNSConfigRecordsItems) GetCnameRecord() []string {
	if m != nil {
		return m.CnameRecord
	}
	return nil
}

func (m *GatewayDNSConfigRecordsItems) GetDomain() string {
	if m != nil {
		return m.Domain
	}
	return ""
}

func init() {
	proto.RegisterEnum("magma.mconfig.EnodebD_CSFBRat", EnodebD_CSFBRat_name, EnodebD_CSFBRat_value)
	proto.RegisterEnum("magma.mconfig.PipelineD_NetworkServices", PipelineD_NetworkServices_name, PipelineD_NetworkServices_value)
	proto.RegisterEnum("magma.mconfig.WalletExhaustDetection_Method", WalletExhaustDetection_Method_name, WalletExhaustDetection_Method_value)
	proto.RegisterEnum("magma.mconfig.MobilityD_IpAllocatorType", MobilityD_IpAllocatorType_name, MobilityD_IpAllocatorType_value)
	proto.RegisterEnum("magma.mconfig.MME_NonEPSServiceControl", MME_NonEPSServiceControl_name, MME_NonEPSServiceControl_value)
	proto.RegisterType((*EnodebD)(nil), "magma.mconfig.EnodebD")
	proto.RegisterMapType((map[string]*EnodebD_EnodebConfig)(nil), "magma.mconfig.EnodebD.EnbConfigsBySerialEntry")
	proto.RegisterType((*EnodebD_FDDConfig)(nil), "magma.mconfig.EnodebD.FDDConfig")
	proto.RegisterType((*EnodebD_TDDConfig)(nil), "magma.mconfig.EnodebD.TDDConfig")
	proto.RegisterType((*EnodebD_EnodebConfig)(nil), "magma.mconfig.EnodebD.EnodebConfig")
	proto.RegisterType((*PipelineD)(nil), "magma.mconfig.PipelineD")
	proto.RegisterType((*PipelineD_AllowedGrePeer)(nil), "magma.mconfig.PipelineD.AllowedGrePeer")
	proto.RegisterType((*PipelineD_IPDRExportDst)(nil), "magma.mconfig.PipelineD.IPDRExportDst")
	proto.RegisterType((*PipelineD_LiUes)(nil), "magma.mconfig.PipelineD.LiUes")
	proto.RegisterType((*SessionD)(nil), "magma.mconfig.SessionD")
	proto.RegisterType((*WalletExhaustDetection)(nil), "magma.mconfig.WalletExhaustDetection")
	proto.RegisterType((*PolicyDB)(nil), "magma.mconfig.PolicyDB")
	proto.RegisterType((*RedirectD)(nil), "magma.mconfig.RedirectD")
	proto.RegisterType((*MobilityD)(nil), "magma.mconfig.MobilityD")
	proto.RegisterType((*MME)(nil), "magma.mconfig.MME")
	proto.RegisterType((*MME_ApnCorrectionMap)(nil), "magma.mconfig.MME.ApnCorrectionMap")
	proto.RegisterType((*SubscriberDB)(nil), "magma.mconfig.SubscriberDB")
	proto.RegisterMapType((map[string]*SubscriberDB_SubscriptionProfile)(nil), "magma.mconfig.SubscriberDB.SubProfilesEntry")
	proto.RegisterType((*SubscriberDB_SubscriptionProfile)(nil), "magma.mconfig.SubscriberDB.SubscriptionProfile")
	proto.RegisterType((*LighttpD)(nil), "magma.mconfig.LighttpD")
	proto.RegisterType((*MonitorD)(nil), "magma.mconfig.MonitorD")
	proto.RegisterType((*DPID)(nil), "magma.mconfig.DPID")
	proto.RegisterType((*DnsD)(nil), "magma.mconfig.DnsD")
	proto.RegisterType((*GatewayDNSConfigRecordsItems)(nil), "magma.mconfig.GatewayDNSConfigRecordsItems")
}

func init() { proto.RegisterFile("lte/protos/mconfig/mconfigs.proto", fileDescriptor_cb46bfd77f2ecf71) }

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