/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "NR-RRC-Definitions"
 * 	found in "asn/nr-rrc-15.6.0.asn1"
 * 	`asn1c -fcompound-names -pdu=all -findirect-choice -fno-include-deps -gen-PER -no-gen-OER -no-gen-example -D rrc`
 */

#include "ASN_RRC_CSI-ReportConfig.h"

#include "ASN_RRC_CodebookConfig.h"
#include "ASN_RRC_PUCCH-CSI-Resource.h"
#include "ASN_RRC_PortIndexFor8Ranks.h"
static int
memb_ASN_RRC_pucch_CSI_ResourceList_constraint_8(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	/* Determine the number of elements */
	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
	
	if((size >= 1 && size <= 4)) {
		/* Perform validation of the inner elements */
		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_pucch_CSI_ResourceList_constraint_12(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	/* Determine the number of elements */
	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
	
	if((size >= 1 && size <= 4)) {
		/* Perform validation of the inner elements */
		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
static int
memb_NativeInteger_constraint_25(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 32)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_reportSlotOffsetList_constraint_16(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	/* Determine the number of elements */
	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
	
	if((size >= 1 && size <= 16)) {
		/* Perform validation of the inner elements */
		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_NativeInteger_constraint_29(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	long value;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	value = *(const long *)sptr;
	
	if((value >= 0 && value <= 32)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_reportSlotOffsetList_constraint_28(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	/* Determine the number of elements */
	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
	
	if((size >= 1 && size <= 16)) {
		/* Perform validation of the inner elements */
		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
static int
memb_ASN_RRC_subbands3_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 3)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands4_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 4)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands5_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 5)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands6_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 6)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands7_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 7)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands8_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 8)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands9_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 9)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands10_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 10)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands11_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 11)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands12_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 12)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands13_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 13)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands14_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 14)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands15_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 15)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands16_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 16)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands17_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 17)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands18_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 18)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static int
memb_ASN_RRC_subbands19_v1530_constraint_50(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	const BIT_STRING_t *st = (const BIT_STRING_t *)sptr;
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	if(st->size > 0) {
		/* Size in bits */
		size = 8 * st->size - (st->bits_unused & 0x07);
	} else {
		size = 0;
	}
	
	if((size == 19)) {
		/* Constraint check succeeded */
		return 0;
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
/*
 * This type is implemented using NativeEnumerated,
 * so here we adjust the DEF accordingly.
 */
static int
memb_ASN_RRC_non_PMI_PortIndication_constraint_1(const asn_TYPE_descriptor_t *td, const void *sptr,
			asn_app_constraint_failed_f *ctfailcb, void *app_key) {
	size_t size;
	
	if(!sptr) {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: value not given (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
	
	/* Determine the number of elements */
	size = _A_CSEQUENCE_FROM_VOID(sptr)->count;
	
	if((size >= 1 && size <= 128)) {
		/* Perform validation of the inner elements */
		return td->encoding_constraints.general_constraints(td, sptr, ctfailcb, app_key);
	} else {
		ASN__CTFAIL(app_key, td, sptr,
			"%s: constraint failed (%s:%d)",
			td->name, __FILE__, __LINE__);
		return -1;
	}
}

static asn_per_constraints_t asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_10 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 2,  2,  1,  4 }	/* (SIZE(1..4)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_10 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 2,  2,  1,  4 }	/* (SIZE(1..4)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_14 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 2,  2,  1,  4 }	/* (SIZE(1..4)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_14 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 2,  2,  1,  4 }	/* (SIZE(1..4)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotConfig_constr_17 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 3,  3,  0,  6 }	/* (0..6) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_26 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 6,  6,  0,  32 }	/* (0..32) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_25 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 4,  4,  1,  16 }	/* (SIZE(1..16)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_25 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 4,  4,  1,  16 }	/* (SIZE(1..16)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_Member_constr_30 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 6,  6,  0,  32 }	/* (0..32) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_29 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 4,  4,  1,  16 }	/* (SIZE(1..16)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_29 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 4,  4,  1,  16 }	/* (SIZE(1..16)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportConfigType_constr_7 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  3 }	/* (0..3) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_pdsch_BundleSizeForCSI_constr_36 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportQuantity_constr_31 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 3,  3,  0,  7 }	/* (0..7) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_cqi_FormatIndicator_constr_44 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_pmi_FormatIndicator_constr_47 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands3_constr_51 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  3,  3 }	/* (SIZE(3..3)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands4_constr_52 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  4,  4 }	/* (SIZE(4..4)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands5_constr_53 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  5,  5 }	/* (SIZE(5..5)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands6_constr_54 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  6,  6 }	/* (SIZE(6..6)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands7_constr_55 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  7,  7 }	/* (SIZE(7..7)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands8_constr_56 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  8,  8 }	/* (SIZE(8..8)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands9_constr_57 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  9,  9 }	/* (SIZE(9..9)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands10_constr_58 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  10,  10 }	/* (SIZE(10..10)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands11_constr_59 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  11,  11 }	/* (SIZE(11..11)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands12_constr_60 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  12,  12 }	/* (SIZE(12..12)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands13_constr_61 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  13,  13 }	/* (SIZE(13..13)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands14_constr_62 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  14,  14 }	/* (SIZE(14..14)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands15_constr_63 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  15,  15 }	/* (SIZE(15..15)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands16_constr_64 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  16,  16 }	/* (SIZE(16..16)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands17_constr_65 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  17,  17 }	/* (SIZE(17..17)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands18_constr_66 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  18,  18 }	/* (SIZE(18..18)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_subbands19_v1530_constr_68 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 0,  0,  19,  19 }	/* (SIZE(19..19)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_csi_ReportingBand_constr_50 CC_NOTUSED = {
	{ APC_CONSTRAINED | APC_EXTENSIBLE,  4,  4,  0,  15 }	/* (0..15,...) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_timeRestrictionForChannelMeasurements_constr_69 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_timeRestrictionForInterferenceMeasurements_constr_72 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_dummy_constr_76 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_nrofReportedRS_constr_82 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  3 }	/* (0..3) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_groupBasedBeamReporting_constr_79 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_cqi_Table_constr_87 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  3 }	/* (0..3) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_subbandSize_constr_92 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 1,  1,  0,  1 }	/* (0..1) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_non_PMI_PortIndication_constr_95 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 7,  7,  1,  128 }	/* (SIZE(1..128)) */,
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_type_ASN_RRC_reportSlotConfig_v1530_constr_100 CC_NOTUSED = {
	{ APC_CONSTRAINED,	 2,  2,  0,  2 }	/* (0..2) */,
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	0, 0	/* No PER value map */
};
static asn_per_constraints_t asn_PER_memb_ASN_RRC_non_PMI_PortIndication_constr_95 CC_NOTUSED = {
	{ APC_UNCONSTRAINED,	-1, -1,  0,  0 },
	{ APC_CONSTRAINED,	 7,  7,  1,  128 }	/* (SIZE(1..128)) */,
	0, 0	/* No PER value map */
};
static asn_TYPE_member_t asn_MBR_ASN_RRC_pucch_CSI_ResourceList_10[] = {
	{ ATF_POINTER, 0, 0,
		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
		0,
		&asn_DEF_ASN_RRC_PUCCH_CSI_Resource,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		""
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_10 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic__pucch_CSI_ResourceList, _asn_ctx),
	0,	/* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_10 = {
	"pucch-CSI-ResourceList",
	"pucch-CSI-ResourceList",
	&asn_OP_SEQUENCE_OF,
	asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10,
	sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10)
		/sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10)
		/sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_10[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_10, SEQUENCE_OF_constraint },
	asn_MBR_ASN_RRC_pucch_CSI_ResourceList_10,
	1,	/* Single element */
	&asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_10	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_periodic_8[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, reportSlotConfig),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportSlotConfig"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, pucch_CSI_ResourceList),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		0,
		&asn_DEF_ASN_RRC_pucch_CSI_ResourceList_10,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_10,  memb_ASN_RRC_pucch_CSI_ResourceList_constraint_8 },
		0, 0, /* No default value */
		"pucch-CSI-ResourceList"
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_periodic_tags_8[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_periodic_tag2el_8[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pucch-CSI-ResourceList */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_periodic_specs_8 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__periodic, _asn_ctx),
	asn_MAP_ASN_RRC_periodic_tag2el_8,
	2,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_periodic_8 = {
	"periodic",
	"periodic",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_periodic_tags_8,
	sizeof(asn_DEF_ASN_RRC_periodic_tags_8)
		/sizeof(asn_DEF_ASN_RRC_periodic_tags_8[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_periodic_tags_8,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_periodic_tags_8)
		/sizeof(asn_DEF_ASN_RRC_periodic_tags_8[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_periodic_8,
	2,	/* Elements count */
	&asn_SPC_ASN_RRC_periodic_specs_8	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_pucch_CSI_ResourceList_14[] = {
	{ ATF_POINTER, 0, 0,
		(ASN_TAG_CLASS_UNIVERSAL | (16 << 2)),
		0,
		&asn_DEF_ASN_RRC_PUCCH_CSI_Resource,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		""
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_14 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH__pucch_CSI_ResourceList, _asn_ctx),
	0,	/* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pucch_CSI_ResourceList_14 = {
	"pucch-CSI-ResourceList",
	"pucch-CSI-ResourceList",
	&asn_OP_SEQUENCE_OF,
	asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14,
	sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14)
		/sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14)
		/sizeof(asn_DEF_ASN_RRC_pucch_CSI_ResourceList_tags_14[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_pucch_CSI_ResourceList_constr_14, SEQUENCE_OF_constraint },
	asn_MBR_ASN_RRC_pucch_CSI_ResourceList_14,
	1,	/* Single element */
	&asn_SPC_ASN_RRC_pucch_CSI_ResourceList_specs_14	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUCCH_12[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, reportSlotConfig),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ReportPeriodicityAndOffset,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportSlotConfig"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, pucch_CSI_ResourceList),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		0,
		&asn_DEF_ASN_RRC_pucch_CSI_ResourceList_14,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_pucch_CSI_ResourceList_constr_14,  memb_ASN_RRC_pucch_CSI_ResourceList_constraint_12 },
		0, 0, /* No default value */
		"pucch-CSI-ResourceList"
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUCCH_tag2el_12[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* pucch-CSI-ResourceList */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUCCH_specs_12 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUCCH, _asn_ctx),
	asn_MAP_ASN_RRC_semiPersistentOnPUCCH_tag2el_12,
	2,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUCCH_12 = {
	"semiPersistentOnPUCCH",
	"semiPersistentOnPUCCH",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12,
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUCCH_tags_12[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_semiPersistentOnPUCCH_12,
	2,	/* Elements count */
	&asn_SPC_ASN_RRC_semiPersistentOnPUCCH_specs_12	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportSlotConfig_value2enum_17[] = {
	{ 0,	3,	"sl5" },
	{ 1,	4,	"sl10" },
	{ 2,	4,	"sl20" },
	{ 3,	4,	"sl40" },
	{ 4,	4,	"sl80" },
	{ 5,	5,	"sl160" },
	{ 6,	5,	"sl320" }
};
static const unsigned int asn_MAP_ASN_RRC_reportSlotConfig_enum2value_17[] = {
	1,	/* sl10(1) */
	5,	/* sl160(5) */
	2,	/* sl20(2) */
	6,	/* sl320(6) */
	3,	/* sl40(3) */
	0,	/* sl5(0) */
	4	/* sl80(4) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportSlotConfig_specs_17 = {
	asn_MAP_ASN_RRC_reportSlotConfig_value2enum_17,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_reportSlotConfig_enum2value_17,	/* N => "tag"; sorted by N */
	7,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotConfig_tags_17[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotConfig_17 = {
	"reportSlotConfig",
	"reportSlotConfig",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_reportSlotConfig_tags_17,
	sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17)
		/sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_reportSlotConfig_tags_17,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17)
		/sizeof(asn_DEF_ASN_RRC_reportSlotConfig_tags_17[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_reportSlotConfig_constr_17, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_reportSlotConfig_specs_17	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_reportSlotOffsetList_25[] = {
	{ ATF_POINTER, 0, 0,
		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
		0,
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_Member_constr_26,  memb_NativeInteger_constraint_25 },
		0, 0, /* No default value */
		""
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_reportSlotOffsetList_specs_25 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH__reportSlotOffsetList, _asn_ctx),
	0,	/* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotOffsetList_25 = {
	"reportSlotOffsetList",
	"reportSlotOffsetList",
	&asn_OP_SEQUENCE_OF,
	asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25,
	sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25)
		/sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25)
		/sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_25[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_25, SEQUENCE_OF_constraint },
	asn_MBR_ASN_RRC_reportSlotOffsetList_25,
	1,	/* Single element */
	&asn_SPC_ASN_RRC_reportSlotOffsetList_specs_25	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUSCH_16[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotConfig),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_reportSlotConfig_17,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportSlotConfig"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, reportSlotOffsetList),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		0,
		&asn_DEF_ASN_RRC_reportSlotOffsetList_25,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_25,  memb_ASN_RRC_reportSlotOffsetList_constraint_16 },
		0, 0, /* No default value */
		"reportSlotOffsetList"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, p0alpha),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_P0_PUSCH_AlphaSetId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"p0alpha"
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[] = {
	(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUSCH_tag2el_16[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportSlotConfig */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* reportSlotOffsetList */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* p0alpha */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUSCH_specs_16 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__semiPersistentOnPUSCH, _asn_ctx),
	asn_MAP_ASN_RRC_semiPersistentOnPUSCH_tag2el_16,
	3,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_16 = {
	"semiPersistentOnPUSCH",
	"semiPersistentOnPUSCH",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16,
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_tags_16[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_semiPersistentOnPUSCH_16,
	3,	/* Elements count */
	&asn_SPC_ASN_RRC_semiPersistentOnPUSCH_specs_16	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_reportSlotOffsetList_29[] = {
	{ ATF_POINTER, 0, 0,
		(ASN_TAG_CLASS_UNIVERSAL | (2 << 2)),
		0,
		&asn_DEF_NativeInteger,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_Member_constr_30,  memb_NativeInteger_constraint_29 },
		0, 0, /* No default value */
		""
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_reportSlotOffsetList_specs_29 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic__reportSlotOffsetList, _asn_ctx),
	0,	/* XER encoding is XMLDelimitedItemList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotOffsetList_29 = {
	"reportSlotOffsetList",
	"reportSlotOffsetList",
	&asn_OP_SEQUENCE_OF,
	asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29,
	sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29)
		/sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29)
		/sizeof(asn_DEF_ASN_RRC_reportSlotOffsetList_tags_29[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_reportSlotOffsetList_constr_29, SEQUENCE_OF_constraint },
	asn_MBR_ASN_RRC_reportSlotOffsetList_29,
	1,	/* Single element */
	&asn_SPC_ASN_RRC_reportSlotOffsetList_specs_29	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_aperiodic_28[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic, reportSlotOffsetList),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		0,
		&asn_DEF_ASN_RRC_reportSlotOffsetList_29,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_reportSlotOffsetList_constr_29,  memb_ASN_RRC_reportSlotOffsetList_constraint_28 },
		0, 0, /* No default value */
		"reportSlotOffsetList"
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_aperiodic_tags_28[] = {
	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_aperiodic_tag2el_28[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotOffsetList */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_aperiodic_specs_28 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType__aperiodic, _asn_ctx),
	asn_MAP_ASN_RRC_aperiodic_tag2el_28,
	1,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_aperiodic_28 = {
	"aperiodic",
	"aperiodic",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_aperiodic_tags_28,
	sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28)
		/sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_aperiodic_tags_28,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28)
		/sizeof(asn_DEF_ASN_RRC_aperiodic_tags_28[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_aperiodic_28,
	1,	/* Elements count */
	&asn_SPC_ASN_RRC_aperiodic_specs_28	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_reportConfigType_7[] = {
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.periodic),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		0,
		&asn_DEF_ASN_RRC_periodic_8,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"periodic"
		},
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUCCH),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		0,
		&asn_DEF_ASN_RRC_semiPersistentOnPUCCH_12,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"semiPersistentOnPUCCH"
		},
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.semiPersistentOnPUSCH),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		0,
		&asn_DEF_ASN_RRC_semiPersistentOnPUSCH_16,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"semiPersistentOnPUSCH"
		},
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, choice.aperiodic),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		0,
		&asn_DEF_ASN_RRC_aperiodic_28,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"aperiodic"
		},
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportConfigType_tag2el_7[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* periodic */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* semiPersistentOnPUCCH */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* semiPersistentOnPUSCH */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 } /* aperiodic */
};
static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportConfigType_specs_7 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportConfigType),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, _asn_ctx),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportConfigType, present),
	sizeof(((struct ASN_RRC_CSI_ReportConfig__reportConfigType *)0)->present),
	asn_MAP_ASN_RRC_reportConfigType_tag2el_7,
	4,	/* Count of tags in the map */
	0, 0,
	-1	/* Extensions start */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportConfigType_7 = {
	"reportConfigType",
	"reportConfigType",
	&asn_OP_CHOICE,
	0,	/* No effective tags (pointer) */
	0,	/* No effective tags (count) */
	0,	/* No tags (pointer) */
	0,	/* No tags (count) */
	{ 0, &asn_PER_type_ASN_RRC_reportConfigType_constr_7, CHOICE_constraint },
	asn_MBR_ASN_RRC_reportConfigType_7,
	4,	/* Elements count */
	&asn_SPC_ASN_RRC_reportConfigType_specs_7	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_value2enum_36[] = {
	{ 0,	2,	"n2" },
	{ 1,	2,	"n4" }
};
static const unsigned int asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_enum2value_36[] = {
	0,	/* n2(0) */
	1	/* n4(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pdsch_BundleSizeForCSI_specs_36 = {
	asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_value2enum_36,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_pdsch_BundleSizeForCSI_enum2value_36,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_36 = {
	"pdsch-BundleSizeForCSI",
	"pdsch-BundleSizeForCSI",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36,
	sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36)
		/sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36)
		/sizeof(asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_tags_36[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_pdsch_BundleSizeForCSI_constr_36, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_pdsch_BundleSizeForCSI_specs_36	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_cri_RI_i1_CQI_35[] = {
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, pdsch_BundleSizeForCSI),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_pdsch_BundleSizeForCSI_36,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"pdsch-BundleSizeForCSI"
		},
};
static const int asn_MAP_ASN_RRC_cri_RI_i1_CQI_oms_35[] = { 0 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[] = {
	(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_cri_RI_i1_CQI_tag2el_35[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* pdsch-BundleSizeForCSI */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_cri_RI_i1_CQI_specs_35 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity__cri_RI_i1_CQI, _asn_ctx),
	asn_MAP_ASN_RRC_cri_RI_i1_CQI_tag2el_35,
	1,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_cri_RI_i1_CQI_oms_35,	/* Optional members */
	1, 0,	/* Root/Additions */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cri_RI_i1_CQI_35 = {
	"cri-RI-i1-CQI",
	"cri-RI-i1-CQI",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35,
	sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35)
		/sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35)
		/sizeof(asn_DEF_ASN_RRC_cri_RI_i1_CQI_tags_35[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_cri_RI_i1_CQI_35,
	1,	/* Elements count */
	&asn_SPC_ASN_RRC_cri_RI_i1_CQI_specs_35	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_reportQuantity_31[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.none),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"none"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_PMI_CQI),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RI-PMI-CQI"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_i1),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RI-i1"
		},
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_i1_CQI),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		0,
		&asn_DEF_ASN_RRC_cri_RI_i1_CQI_35,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RI-i1-CQI"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_CQI),
		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RI-CQI"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RSRP),
		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RSRP"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.ssb_Index_RSRP),
		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"ssb-Index-RSRP"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, choice.cri_RI_LI_PMI_CQI),
		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cri-RI-LI-PMI-CQI"
		},
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportQuantity_tag2el_31[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* none */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* cri-RI-PMI-CQI */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* cri-RI-i1 */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* cri-RI-i1-CQI */
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* cri-RI-CQI */
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* cri-RSRP */
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* ssb-Index-RSRP */
    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 } /* cri-RI-LI-PMI-CQI */
};
static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_reportQuantity_specs_31 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportQuantity),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, _asn_ctx),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportQuantity, present),
	sizeof(((struct ASN_RRC_CSI_ReportConfig__reportQuantity *)0)->present),
	asn_MAP_ASN_RRC_reportQuantity_tag2el_31,
	8,	/* Count of tags in the map */
	0, 0,
	-1	/* Extensions start */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportQuantity_31 = {
	"reportQuantity",
	"reportQuantity",
	&asn_OP_CHOICE,
	0,	/* No effective tags (pointer) */
	0,	/* No effective tags (count) */
	0,	/* No tags (pointer) */
	0,	/* No tags (count) */
	{ 0, &asn_PER_type_ASN_RRC_reportQuantity_constr_31, CHOICE_constraint },
	asn_MBR_ASN_RRC_reportQuantity_31,
	8,	/* Elements count */
	&asn_SPC_ASN_RRC_reportQuantity_specs_31	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cqi_FormatIndicator_value2enum_44[] = {
	{ 0,	11,	"widebandCQI" },
	{ 1,	10,	"subbandCQI" }
};
static const unsigned int asn_MAP_ASN_RRC_cqi_FormatIndicator_enum2value_44[] = {
	1,	/* subbandCQI(1) */
	0	/* widebandCQI(0) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cqi_FormatIndicator_specs_44 = {
	asn_MAP_ASN_RRC_cqi_FormatIndicator_value2enum_44,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_cqi_FormatIndicator_enum2value_44,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_FormatIndicator_44 = {
	"cqi-FormatIndicator",
	"cqi-FormatIndicator",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44,
	sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44)
		/sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44)
		/sizeof(asn_DEF_ASN_RRC_cqi_FormatIndicator_tags_44[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_cqi_FormatIndicator_constr_44, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_cqi_FormatIndicator_specs_44	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_pmi_FormatIndicator_value2enum_47[] = {
	{ 0,	11,	"widebandPMI" },
	{ 1,	10,	"subbandPMI" }
};
static const unsigned int asn_MAP_ASN_RRC_pmi_FormatIndicator_enum2value_47[] = {
	1,	/* subbandPMI(1) */
	0	/* widebandPMI(0) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_pmi_FormatIndicator_specs_47 = {
	asn_MAP_ASN_RRC_pmi_FormatIndicator_value2enum_47,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_pmi_FormatIndicator_enum2value_47,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_pmi_FormatIndicator_47 = {
	"pmi-FormatIndicator",
	"pmi-FormatIndicator",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47,
	sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47)
		/sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47)
		/sizeof(asn_DEF_ASN_RRC_pmi_FormatIndicator_tags_47[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_pmi_FormatIndicator_constr_47, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_pmi_FormatIndicator_specs_47	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_csi_ReportingBand_50[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands3),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands3_constr_51,  memb_ASN_RRC_subbands3_constraint_50 },
		0, 0, /* No default value */
		"subbands3"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands4),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands4_constr_52,  memb_ASN_RRC_subbands4_constraint_50 },
		0, 0, /* No default value */
		"subbands4"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands5),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands5_constr_53,  memb_ASN_RRC_subbands5_constraint_50 },
		0, 0, /* No default value */
		"subbands5"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands6),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands6_constr_54,  memb_ASN_RRC_subbands6_constraint_50 },
		0, 0, /* No default value */
		"subbands6"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands7),
		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands7_constr_55,  memb_ASN_RRC_subbands7_constraint_50 },
		0, 0, /* No default value */
		"subbands7"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands8),
		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands8_constr_56,  memb_ASN_RRC_subbands8_constraint_50 },
		0, 0, /* No default value */
		"subbands8"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands9),
		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands9_constr_57,  memb_ASN_RRC_subbands9_constraint_50 },
		0, 0, /* No default value */
		"subbands9"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands10),
		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands10_constr_58,  memb_ASN_RRC_subbands10_constraint_50 },
		0, 0, /* No default value */
		"subbands10"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands11),
		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands11_constr_59,  memb_ASN_RRC_subbands11_constraint_50 },
		0, 0, /* No default value */
		"subbands11"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands12),
		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands12_constr_60,  memb_ASN_RRC_subbands12_constraint_50 },
		0, 0, /* No default value */
		"subbands12"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands13),
		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands13_constr_61,  memb_ASN_RRC_subbands13_constraint_50 },
		0, 0, /* No default value */
		"subbands13"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands14),
		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands14_constr_62,  memb_ASN_RRC_subbands14_constraint_50 },
		0, 0, /* No default value */
		"subbands14"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands15),
		(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands15_constr_63,  memb_ASN_RRC_subbands15_constraint_50 },
		0, 0, /* No default value */
		"subbands15"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands16),
		(ASN_TAG_CLASS_CONTEXT | (13 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands16_constr_64,  memb_ASN_RRC_subbands16_constraint_50 },
		0, 0, /* No default value */
		"subbands16"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands17),
		(ASN_TAG_CLASS_CONTEXT | (14 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands17_constr_65,  memb_ASN_RRC_subbands17_constraint_50 },
		0, 0, /* No default value */
		"subbands17"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands18),
		(ASN_TAG_CLASS_CONTEXT | (15 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands18_constr_66,  memb_ASN_RRC_subbands18_constraint_50 },
		0, 0, /* No default value */
		"subbands18"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, choice.subbands19_v1530),
		(ASN_TAG_CLASS_CONTEXT | (16 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_BIT_STRING,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_subbands19_v1530_constr_68,  memb_ASN_RRC_subbands19_v1530_constraint_50 },
		0, 0, /* No default value */
		"subbands19-v1530"
		},
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_csi_ReportingBand_tag2el_50[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* subbands3 */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* subbands4 */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* subbands5 */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* subbands6 */
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* subbands7 */
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* subbands8 */
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* subbands9 */
    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* subbands10 */
    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* subbands11 */
    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* subbands12 */
    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* subbands13 */
    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* subbands14 */
    { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* subbands15 */
    { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* subbands16 */
    { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* subbands17 */
    { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* subbands18 */
    { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* subbands19-v1530 */
};
static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_csi_ReportingBand_specs_50 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, _asn_ctx),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand, present),
	sizeof(((struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration__csi_ReportingBand *)0)->present),
	asn_MAP_ASN_RRC_csi_ReportingBand_tag2el_50,
	17,	/* Count of tags in the map */
	0, 0,
	16	/* Extensions start */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_csi_ReportingBand_50 = {
	"csi-ReportingBand",
	"csi-ReportingBand",
	&asn_OP_CHOICE,
	0,	/* No effective tags (pointer) */
	0,	/* No effective tags (count) */
	0,	/* No tags (pointer) */
	0,	/* No tags (count) */
	{ 0, &asn_PER_type_ASN_RRC_csi_ReportingBand_constr_50, CHOICE_constraint },
	asn_MBR_ASN_RRC_csi_ReportingBand_50,
	17,	/* Elements count */
	&asn_SPC_ASN_RRC_csi_ReportingBand_specs_50	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_reportFreqConfiguration_43[] = {
	{ ATF_POINTER, 3, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, cqi_FormatIndicator),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_cqi_FormatIndicator_44,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cqi-FormatIndicator"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, pmi_FormatIndicator),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_pmi_FormatIndicator_47,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"pmi-FormatIndicator"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, csi_ReportingBand),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_csi_ReportingBand_50,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"csi-ReportingBand"
		},
};
static const int asn_MAP_ASN_RRC_reportFreqConfiguration_oms_43[] = { 0, 1, 2 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[] = {
	(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_reportFreqConfiguration_tag2el_43[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* cqi-FormatIndicator */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* pmi-FormatIndicator */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 } /* csi-ReportingBand */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_reportFreqConfiguration_specs_43 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration),
	offsetof(struct ASN_RRC_CSI_ReportConfig__reportFreqConfiguration, _asn_ctx),
	asn_MAP_ASN_RRC_reportFreqConfiguration_tag2el_43,
	3,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_reportFreqConfiguration_oms_43,	/* Optional members */
	3, 0,	/* Root/Additions */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportFreqConfiguration_43 = {
	"reportFreqConfiguration",
	"reportFreqConfiguration",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43,
	sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43)
		/sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43)
		/sizeof(asn_DEF_ASN_RRC_reportFreqConfiguration_tags_43[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_reportFreqConfiguration_43,
	3,	/* Elements count */
	&asn_SPC_ASN_RRC_reportFreqConfiguration_specs_43	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_value2enum_69[] = {
	{ 0,	10,	"configured" },
	{ 1,	13,	"notConfigured" }
};
static const unsigned int asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_enum2value_69[] = {
	0,	/* configured(0) */
	1	/* notConfigured(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeRestrictionForChannelMeasurements_specs_69 = {
	asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_value2enum_69,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_timeRestrictionForChannelMeasurements_enum2value_69,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[] = {
	(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_69 = {
	"timeRestrictionForChannelMeasurements",
	"timeRestrictionForChannelMeasurements",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69,
	sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69)
		/sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69)
		/sizeof(asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_tags_69[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_timeRestrictionForChannelMeasurements_constr_69, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_timeRestrictionForChannelMeasurements_specs_69	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_value2enum_72[] = {
	{ 0,	10,	"configured" },
	{ 1,	13,	"notConfigured" }
};
static const unsigned int asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_enum2value_72[] = {
	0,	/* configured(0) */
	1	/* notConfigured(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_timeRestrictionForInterferenceMeasurements_specs_72 = {
	asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_value2enum_72,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_timeRestrictionForInterferenceMeasurements_enum2value_72,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[] = {
	(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_72 = {
	"timeRestrictionForInterferenceMeasurements",
	"timeRestrictionForInterferenceMeasurements",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72,
	sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72)
		/sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72)
		/sizeof(asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_tags_72[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_timeRestrictionForInterferenceMeasurements_constr_72, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_timeRestrictionForInterferenceMeasurements_specs_72	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_dummy_value2enum_76[] = {
	{ 0,	2,	"n1" },
	{ 1,	2,	"n2" }
};
static const unsigned int asn_MAP_ASN_RRC_dummy_enum2value_76[] = {
	0,	/* n1(0) */
	1	/* n2(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_dummy_specs_76 = {
	asn_MAP_ASN_RRC_dummy_value2enum_76,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_dummy_enum2value_76,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_dummy_tags_76[] = {
	(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_dummy_76 = {
	"dummy",
	"dummy",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_dummy_tags_76,
	sizeof(asn_DEF_ASN_RRC_dummy_tags_76)
		/sizeof(asn_DEF_ASN_RRC_dummy_tags_76[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_dummy_tags_76,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_dummy_tags_76)
		/sizeof(asn_DEF_ASN_RRC_dummy_tags_76[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_dummy_constr_76, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_dummy_specs_76	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_nrofReportedRS_value2enum_82[] = {
	{ 0,	2,	"n1" },
	{ 1,	2,	"n2" },
	{ 2,	2,	"n3" },
	{ 3,	2,	"n4" }
};
static const unsigned int asn_MAP_ASN_RRC_nrofReportedRS_enum2value_82[] = {
	0,	/* n1(0) */
	1,	/* n2(1) */
	2,	/* n3(2) */
	3	/* n4(3) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_nrofReportedRS_specs_82 = {
	asn_MAP_ASN_RRC_nrofReportedRS_value2enum_82,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_nrofReportedRS_enum2value_82,	/* N => "tag"; sorted by N */
	4,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_nrofReportedRS_tags_82[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_nrofReportedRS_82 = {
	"nrofReportedRS",
	"nrofReportedRS",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_nrofReportedRS_tags_82,
	sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82)
		/sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_nrofReportedRS_tags_82,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82)
		/sizeof(asn_DEF_ASN_RRC_nrofReportedRS_tags_82[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_nrofReportedRS_constr_82, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_nrofReportedRS_specs_82	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_disabled_81[] = {
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled, nrofReportedRS),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_nrofReportedRS_82,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"nrofReportedRS"
		},
};
static const int asn_MAP_ASN_RRC_disabled_oms_81[] = { 0 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_disabled_tags_81[] = {
	(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_disabled_tag2el_81[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* nrofReportedRS */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_disabled_specs_81 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled),
	offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting__disabled, _asn_ctx),
	asn_MAP_ASN_RRC_disabled_tag2el_81,
	1,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_disabled_oms_81,	/* Optional members */
	1, 0,	/* Root/Additions */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_disabled_81 = {
	"disabled",
	"disabled",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_disabled_tags_81,
	sizeof(asn_DEF_ASN_RRC_disabled_tags_81)
		/sizeof(asn_DEF_ASN_RRC_disabled_tags_81[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_disabled_tags_81,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_disabled_tags_81)
		/sizeof(asn_DEF_ASN_RRC_disabled_tags_81[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_disabled_81,
	1,	/* Elements count */
	&asn_SPC_ASN_RRC_disabled_specs_81	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_groupBasedBeamReporting_79[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, choice.enabled),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_NULL,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"enabled"
		},
	{ ATF_POINTER, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, choice.disabled),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		0,
		&asn_DEF_ASN_RRC_disabled_81,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"disabled"
		},
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_groupBasedBeamReporting_tag2el_79[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* enabled */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 } /* disabled */
};
static asn_CHOICE_specifics_t asn_SPC_ASN_RRC_groupBasedBeamReporting_specs_79 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting),
	offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, _asn_ctx),
	offsetof(struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting, present),
	sizeof(((struct ASN_RRC_CSI_ReportConfig__groupBasedBeamReporting *)0)->present),
	asn_MAP_ASN_RRC_groupBasedBeamReporting_tag2el_79,
	2,	/* Count of tags in the map */
	0, 0,
	-1	/* Extensions start */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_groupBasedBeamReporting_79 = {
	"groupBasedBeamReporting",
	"groupBasedBeamReporting",
	&asn_OP_CHOICE,
	0,	/* No effective tags (pointer) */
	0,	/* No effective tags (count) */
	0,	/* No tags (pointer) */
	0,	/* No tags (count) */
	{ 0, &asn_PER_type_ASN_RRC_groupBasedBeamReporting_constr_79, CHOICE_constraint },
	asn_MBR_ASN_RRC_groupBasedBeamReporting_79,
	2,	/* Elements count */
	&asn_SPC_ASN_RRC_groupBasedBeamReporting_specs_79	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_cqi_Table_value2enum_87[] = {
	{ 0,	6,	"table1" },
	{ 1,	6,	"table2" },
	{ 2,	6,	"table3" },
	{ 3,	6,	"spare1" }
};
static const unsigned int asn_MAP_ASN_RRC_cqi_Table_enum2value_87[] = {
	3,	/* spare1(3) */
	0,	/* table1(0) */
	1,	/* table2(1) */
	2	/* table3(2) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_cqi_Table_specs_87 = {
	asn_MAP_ASN_RRC_cqi_Table_value2enum_87,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_cqi_Table_enum2value_87,	/* N => "tag"; sorted by N */
	4,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_cqi_Table_tags_87[] = {
	(ASN_TAG_CLASS_CONTEXT | (13 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_cqi_Table_87 = {
	"cqi-Table",
	"cqi-Table",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_cqi_Table_tags_87,
	sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87)
		/sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_cqi_Table_tags_87,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87)
		/sizeof(asn_DEF_ASN_RRC_cqi_Table_tags_87[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_cqi_Table_constr_87, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_cqi_Table_specs_87	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_subbandSize_value2enum_92[] = {
	{ 0,	6,	"value1" },
	{ 1,	6,	"value2" }
};
static const unsigned int asn_MAP_ASN_RRC_subbandSize_enum2value_92[] = {
	0,	/* value1(0) */
	1	/* value2(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_subbandSize_specs_92 = {
	asn_MAP_ASN_RRC_subbandSize_value2enum_92,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_subbandSize_enum2value_92,	/* N => "tag"; sorted by N */
	2,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_subbandSize_tags_92[] = {
	(ASN_TAG_CLASS_CONTEXT | (14 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_subbandSize_92 = {
	"subbandSize",
	"subbandSize",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_subbandSize_tags_92,
	sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92)
		/sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_subbandSize_tags_92,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92)
		/sizeof(asn_DEF_ASN_RRC_subbandSize_tags_92[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_subbandSize_constr_92, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_subbandSize_specs_92	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_non_PMI_PortIndication_95[] = {
	{ ATF_POINTER, 0, 0,
		-1 /* Ambiguous tag (CHOICE?) */,
		0,
		&asn_DEF_ASN_RRC_PortIndexFor8Ranks,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		""
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[] = {
	(ASN_TAG_CLASS_CONTEXT | (15 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static asn_SET_OF_specifics_t asn_SPC_ASN_RRC_non_PMI_PortIndication_specs_95 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__non_PMI_PortIndication),
	offsetof(struct ASN_RRC_CSI_ReportConfig__non_PMI_PortIndication, _asn_ctx),
	2,	/* XER encoding is XMLValueList */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_non_PMI_PortIndication_95 = {
	"non-PMI-PortIndication",
	"non-PMI-PortIndication",
	&asn_OP_SEQUENCE_OF,
	asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95,
	sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95)
		/sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95)
		/sizeof(asn_DEF_ASN_RRC_non_PMI_PortIndication_tags_95[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_non_PMI_PortIndication_constr_95, SEQUENCE_OF_constraint },
	asn_MBR_ASN_RRC_non_PMI_PortIndication_95,
	1,	/* Single element */
	&asn_SPC_ASN_RRC_non_PMI_PortIndication_specs_95	/* Additional specs */
};

static const asn_INTEGER_enum_map_t asn_MAP_ASN_RRC_reportSlotConfig_v1530_value2enum_100[] = {
	{ 0,	3,	"sl4" },
	{ 1,	3,	"sl8" },
	{ 2,	4,	"sl16" }
};
static const unsigned int asn_MAP_ASN_RRC_reportSlotConfig_v1530_enum2value_100[] = {
	2,	/* sl16(2) */
	0,	/* sl4(0) */
	1	/* sl8(1) */
};
static const asn_INTEGER_specifics_t asn_SPC_ASN_RRC_reportSlotConfig_v1530_specs_100 = {
	asn_MAP_ASN_RRC_reportSlotConfig_v1530_value2enum_100,	/* "tag" => N; sorted by tag */
	asn_MAP_ASN_RRC_reportSlotConfig_v1530_enum2value_100,	/* N => "tag"; sorted by N */
	3,	/* Number of elements in the maps */
	0,	/* Enumeration is not extensible */
	1,	/* Strict enumeration */
	0,	/* Native long size */
	0
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (10 << 2))
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_reportSlotConfig_v1530_100 = {
	"reportSlotConfig-v1530",
	"reportSlotConfig-v1530",
	&asn_OP_NativeEnumerated,
	asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100,
	sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100)
		/sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100)
		/sizeof(asn_DEF_ASN_RRC_reportSlotConfig_v1530_tags_100[0]), /* 2 */
	{ 0, &asn_PER_type_ASN_RRC_reportSlotConfig_v1530_constr_100, NativeEnumerated_constraint },
	0, 0,	/* Defined elsewhere */
	&asn_SPC_ASN_RRC_reportSlotConfig_v1530_specs_100	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_semiPersistentOnPUSCH_v1530_99[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, reportSlotConfig_v1530),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_reportSlotConfig_v1530_100,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportSlotConfig-v1530"
		},
};
static const ber_tlv_tag_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[] = {
	(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_semiPersistentOnPUSCH_v1530_tag2el_99[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* reportSlotConfig-v1530 */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_semiPersistentOnPUSCH_v1530_specs_99 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530),
	offsetof(struct ASN_RRC_CSI_ReportConfig__ext1__semiPersistentOnPUSCH_v1530, _asn_ctx),
	asn_MAP_ASN_RRC_semiPersistentOnPUSCH_v1530_tag2el_99,
	1,	/* Count of tags in the map */
	0, 0, 0,	/* Optional elements (not needed) */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_99 = {
	"semiPersistentOnPUSCH-v1530",
	"semiPersistentOnPUSCH-v1530",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99,
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99)
		/sizeof(asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_tags_99[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_semiPersistentOnPUSCH_v1530_99,
	1,	/* Elements count */
	&asn_SPC_ASN_RRC_semiPersistentOnPUSCH_v1530_specs_99	/* Additional specs */
};

static asn_TYPE_member_t asn_MBR_ASN_RRC_ext1_98[] = {
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig__ext1, semiPersistentOnPUSCH_v1530),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		0,
		&asn_DEF_ASN_RRC_semiPersistentOnPUSCH_v1530_99,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"semiPersistentOnPUSCH-v1530"
		},
};
static const int asn_MAP_ASN_RRC_ext1_oms_98[] = { 0 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_ext1_tags_98[] = {
	(ASN_TAG_CLASS_CONTEXT | (16 << 2)),
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_ext1_tag2el_98[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 } /* semiPersistentOnPUSCH-v1530 */
};
static asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_ext1_specs_98 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig__ext1),
	offsetof(struct ASN_RRC_CSI_ReportConfig__ext1, _asn_ctx),
	asn_MAP_ASN_RRC_ext1_tag2el_98,
	1,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_ext1_oms_98,	/* Optional members */
	1, 0,	/* Root/Additions */
	-1,	/* First extension addition */
};
static /* Use -fall-defs-global to expose */
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_ext1_98 = {
	"ext1",
	"ext1",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_ext1_tags_98,
	sizeof(asn_DEF_ASN_RRC_ext1_tags_98)
		/sizeof(asn_DEF_ASN_RRC_ext1_tags_98[0]) - 1, /* 1 */
	asn_DEF_ASN_RRC_ext1_tags_98,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_ext1_tags_98)
		/sizeof(asn_DEF_ASN_RRC_ext1_tags_98[0]), /* 2 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_ext1_98,
	1,	/* Elements count */
	&asn_SPC_ASN_RRC_ext1_specs_98	/* Additional specs */
};

asn_TYPE_member_t asn_MBR_ASN_RRC_CSI_ReportConfig_1[] = {
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportConfigId),
		(ASN_TAG_CLASS_CONTEXT | (0 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ReportConfigId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportConfigId"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, carrier),
		(ASN_TAG_CLASS_CONTEXT | (1 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_ServCellIndex,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"carrier"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, resourcesForChannelMeasurement),
		(ASN_TAG_CLASS_CONTEXT | (2 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ResourceConfigId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"resourcesForChannelMeasurement"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, csi_IM_ResourcesForInterference),
		(ASN_TAG_CLASS_CONTEXT | (3 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ResourceConfigId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"csi-IM-ResourcesForInterference"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, nzp_CSI_RS_ResourcesForInterference),
		(ASN_TAG_CLASS_CONTEXT | (4 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CSI_ResourceConfigId,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"nzp-CSI-RS-ResourcesForInterference"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportConfigType),
		(ASN_TAG_CLASS_CONTEXT | (5 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_reportConfigType_7,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportConfigType"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, reportQuantity),
		(ASN_TAG_CLASS_CONTEXT | (6 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_reportQuantity_31,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportQuantity"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, reportFreqConfiguration),
		(ASN_TAG_CLASS_CONTEXT | (7 << 2)),
		0,
		&asn_DEF_ASN_RRC_reportFreqConfiguration_43,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"reportFreqConfiguration"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, timeRestrictionForChannelMeasurements),
		(ASN_TAG_CLASS_CONTEXT | (8 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_timeRestrictionForChannelMeasurements_69,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"timeRestrictionForChannelMeasurements"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, timeRestrictionForInterferenceMeasurements),
		(ASN_TAG_CLASS_CONTEXT | (9 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_timeRestrictionForInterferenceMeasurements_72,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"timeRestrictionForInterferenceMeasurements"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, codebookConfig),
		(ASN_TAG_CLASS_CONTEXT | (10 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_CodebookConfig,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"codebookConfig"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, dummy),
		(ASN_TAG_CLASS_CONTEXT | (11 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_dummy_76,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"dummy"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, groupBasedBeamReporting),
		(ASN_TAG_CLASS_CONTEXT | (12 << 2)),
		+1,	/* EXPLICIT tag at current level */
		&asn_DEF_ASN_RRC_groupBasedBeamReporting_79,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"groupBasedBeamReporting"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, cqi_Table),
		(ASN_TAG_CLASS_CONTEXT | (13 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_cqi_Table_87,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"cqi-Table"
		},
	{ ATF_NOFLAGS, 0, offsetof(struct ASN_RRC_CSI_ReportConfig, subbandSize),
		(ASN_TAG_CLASS_CONTEXT | (14 << 2)),
		-1,	/* IMPLICIT tag at current level */
		&asn_DEF_ASN_RRC_subbandSize_92,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"subbandSize"
		},
	{ ATF_POINTER, 2, offsetof(struct ASN_RRC_CSI_ReportConfig, non_PMI_PortIndication),
		(ASN_TAG_CLASS_CONTEXT | (15 << 2)),
		0,
		&asn_DEF_ASN_RRC_non_PMI_PortIndication_95,
		0,
		{ 0, &asn_PER_memb_ASN_RRC_non_PMI_PortIndication_constr_95,  memb_ASN_RRC_non_PMI_PortIndication_constraint_1 },
		0, 0, /* No default value */
		"non-PMI-PortIndication"
		},
	{ ATF_POINTER, 1, offsetof(struct ASN_RRC_CSI_ReportConfig, ext1),
		(ASN_TAG_CLASS_CONTEXT | (16 << 2)),
		0,
		&asn_DEF_ASN_RRC_ext1_98,
		0,
		{ 0, 0, 0 },
		0, 0, /* No default value */
		"ext1"
		},
};
static const int asn_MAP_ASN_RRC_CSI_ReportConfig_oms_1[] = { 1, 3, 4, 7, 10, 11, 13, 15, 16 };
static const ber_tlv_tag_t asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[] = {
	(ASN_TAG_CLASS_UNIVERSAL | (16 << 2))
};
static const asn_TYPE_tag2member_t asn_MAP_ASN_RRC_CSI_ReportConfig_tag2el_1[] = {
    { (ASN_TAG_CLASS_CONTEXT | (0 << 2)), 0, 0, 0 }, /* reportConfigId */
    { (ASN_TAG_CLASS_CONTEXT | (1 << 2)), 1, 0, 0 }, /* carrier */
    { (ASN_TAG_CLASS_CONTEXT | (2 << 2)), 2, 0, 0 }, /* resourcesForChannelMeasurement */
    { (ASN_TAG_CLASS_CONTEXT | (3 << 2)), 3, 0, 0 }, /* csi-IM-ResourcesForInterference */
    { (ASN_TAG_CLASS_CONTEXT | (4 << 2)), 4, 0, 0 }, /* nzp-CSI-RS-ResourcesForInterference */
    { (ASN_TAG_CLASS_CONTEXT | (5 << 2)), 5, 0, 0 }, /* reportConfigType */
    { (ASN_TAG_CLASS_CONTEXT | (6 << 2)), 6, 0, 0 }, /* reportQuantity */
    { (ASN_TAG_CLASS_CONTEXT | (7 << 2)), 7, 0, 0 }, /* reportFreqConfiguration */
    { (ASN_TAG_CLASS_CONTEXT | (8 << 2)), 8, 0, 0 }, /* timeRestrictionForChannelMeasurements */
    { (ASN_TAG_CLASS_CONTEXT | (9 << 2)), 9, 0, 0 }, /* timeRestrictionForInterferenceMeasurements */
    { (ASN_TAG_CLASS_CONTEXT | (10 << 2)), 10, 0, 0 }, /* codebookConfig */
    { (ASN_TAG_CLASS_CONTEXT | (11 << 2)), 11, 0, 0 }, /* dummy */
    { (ASN_TAG_CLASS_CONTEXT | (12 << 2)), 12, 0, 0 }, /* groupBasedBeamReporting */
    { (ASN_TAG_CLASS_CONTEXT | (13 << 2)), 13, 0, 0 }, /* cqi-Table */
    { (ASN_TAG_CLASS_CONTEXT | (14 << 2)), 14, 0, 0 }, /* subbandSize */
    { (ASN_TAG_CLASS_CONTEXT | (15 << 2)), 15, 0, 0 }, /* non-PMI-PortIndication */
    { (ASN_TAG_CLASS_CONTEXT | (16 << 2)), 16, 0, 0 } /* ext1 */
};
asn_SEQUENCE_specifics_t asn_SPC_ASN_RRC_CSI_ReportConfig_specs_1 = {
	sizeof(struct ASN_RRC_CSI_ReportConfig),
	offsetof(struct ASN_RRC_CSI_ReportConfig, _asn_ctx),
	asn_MAP_ASN_RRC_CSI_ReportConfig_tag2el_1,
	17,	/* Count of tags in the map */
	asn_MAP_ASN_RRC_CSI_ReportConfig_oms_1,	/* Optional members */
	8, 1,	/* Root/Additions */
	16,	/* First extension addition */
};
asn_TYPE_descriptor_t asn_DEF_ASN_RRC_CSI_ReportConfig = {
	"CSI-ReportConfig",
	"CSI-ReportConfig",
	&asn_OP_SEQUENCE,
	asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1,
	sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1)
		/sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[0]), /* 1 */
	asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1,	/* Same as above */
	sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1)
		/sizeof(asn_DEF_ASN_RRC_CSI_ReportConfig_tags_1[0]), /* 1 */
	{ 0, 0, SEQUENCE_constraint },
	asn_MBR_ASN_RRC_CSI_ReportConfig_1,
	17,	/* Elements count */
	&asn_SPC_ASN_RRC_CSI_ReportConfig_specs_1	/* Additional specs */
};

