/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "X2AP-Containers"
 * 	found in "Spec/e2_and_x2-combined-and-minimized.asn1"
 * 	`asn1c -pdu=auto -fincludes-quoted -fcompound-names -fno-include-deps -gen-PER -no-gen-OER -no-gen-example`
 */

#ifndef	_ProtocolIE_Single_Container_H_
#define	_ProtocolIE_Single_Container_H_


#include "asn_application.h"

/* Including external dependencies */
#include "ProtocolIE-Field.h"

#ifdef __cplusplus
extern "C" {
#endif

/* ProtocolIE-Single-Container */
typedef RICaction_ToBeSetup_ItemIEs_t	 ProtocolIE_Single_Container_8810P0_t;
typedef RICaction_Admitted_ItemIEs_t	 ProtocolIE_Single_Container_8810P1_t;
typedef RICaction_NotAdmitted_ItemIEs_t	 ProtocolIE_Single_Container_8810P2_t;
typedef RANfunction_ItemIEs_t	 ProtocolIE_Single_Container_8810P3_t;
typedef RANfunctionID_ItemIEs_t	 ProtocolIE_Single_Container_8810P4_t;
typedef RANfunctionIDcause_ItemIEs_t	 ProtocolIE_Single_Container_8810P5_t;
typedef CellInformation_ItemIEs_t	 ProtocolIE_Single_Container_8810P6_t;
typedef CellToReport_ItemIEs_t	 ProtocolIE_Single_Container_8810P7_t;
typedef MeasurementInitiationResult_ItemIEs_t	 ProtocolIE_Single_Container_8810P8_t;
typedef MeasurementFailureCause_ItemIEs_t	 ProtocolIE_Single_Container_8810P9_t;
typedef CompleteFailureCauseInformation_ItemIEs_t	 ProtocolIE_Single_Container_8810P10_t;
typedef CellMeasurementResult_ItemIEs_t	 ProtocolIE_Single_Container_8810P11_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P0;
asn_struct_free_f ProtocolIE_Single_Container_8810P0_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P0_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P0_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P0_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P0_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P0_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P0_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P0_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P0_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P0_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P0_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P1;
asn_struct_free_f ProtocolIE_Single_Container_8810P1_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P1_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P1_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P1_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P1_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P1_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P1_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P1_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P1_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P1_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P1_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P2;
asn_struct_free_f ProtocolIE_Single_Container_8810P2_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P2_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P2_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P2_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P2_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P2_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P2_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P2_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P2_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P2_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P2_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P3;
asn_struct_free_f ProtocolIE_Single_Container_8810P3_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P3_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P3_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P3_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P3_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P3_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P3_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P3_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P3_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P3_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P3_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P4;
asn_struct_free_f ProtocolIE_Single_Container_8810P4_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P4_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P4_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P4_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P4_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P4_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P4_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P4_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P4_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P4_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P4_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P5;
asn_struct_free_f ProtocolIE_Single_Container_8810P5_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P5_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P5_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P5_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P5_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P5_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P5_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P5_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P5_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P5_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P5_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P6;
asn_struct_free_f ProtocolIE_Single_Container_8810P6_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P6_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P6_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P6_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P6_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P6_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P6_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P6_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P6_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P6_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P6_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P7;
asn_struct_free_f ProtocolIE_Single_Container_8810P7_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P7_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P7_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P7_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P7_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P7_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P7_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P7_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P7_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P7_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P7_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P8;
asn_struct_free_f ProtocolIE_Single_Container_8810P8_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P8_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P8_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P8_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P8_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P8_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P8_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P8_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P8_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P8_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P8_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P9;
asn_struct_free_f ProtocolIE_Single_Container_8810P9_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P9_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P9_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P9_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P9_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P9_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P9_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P9_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P9_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P9_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P9_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P10;
asn_struct_free_f ProtocolIE_Single_Container_8810P10_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P10_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P10_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P10_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P10_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P10_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P10_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P10_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P10_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P10_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P10_encode_aper;
extern asn_TYPE_descriptor_t asn_DEF_ProtocolIE_Single_Container_8810P11;
asn_struct_free_f ProtocolIE_Single_Container_8810P11_free;
asn_struct_print_f ProtocolIE_Single_Container_8810P11_print;
asn_constr_check_f ProtocolIE_Single_Container_8810P11_constraint;
ber_type_decoder_f ProtocolIE_Single_Container_8810P11_decode_ber;
der_type_encoder_f ProtocolIE_Single_Container_8810P11_encode_der;
xer_type_decoder_f ProtocolIE_Single_Container_8810P11_decode_xer;
xer_type_encoder_f ProtocolIE_Single_Container_8810P11_encode_xer;
per_type_decoder_f ProtocolIE_Single_Container_8810P11_decode_uper;
per_type_encoder_f ProtocolIE_Single_Container_8810P11_encode_uper;
per_type_decoder_f ProtocolIE_Single_Container_8810P11_decode_aper;
per_type_encoder_f ProtocolIE_Single_Container_8810P11_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _ProtocolIE_Single_Container_H_ */
#include "asn_internal.h"
