/*
 * Generated by asn1c-0.9.29 (http://lionet.info/asn1c)
 * From ASN.1 module "E2SM-RC-IEs"
 * 	found in "e2sm-rc-nov2021.asn"
 * 	`asn1c -fcompound-names -fno-include-deps -findirect-choice -pdu=auto -gen-PER -gen-OER -no-gen-example -D .`
 */

#ifndef	_NG_RANnodeUEXnAPID_H_
#define	_NG_RANnodeUEXnAPID_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeInteger.h>

#ifdef __cplusplus
extern "C" {
#endif

/* NG-RANnodeUEXnAPID */
typedef unsigned long	 NG_RANnodeUEXnAPID_t;

/* Implementation */
extern asn_per_constraints_t asn_PER_type_NG_RANnodeUEXnAPID_constr_1;
extern asn_TYPE_descriptor_t asn_DEF_NG_RANnodeUEXnAPID;
extern const asn_INTEGER_specifics_t asn_SPC_NG_RANnodeUEXnAPID_specs_1;
asn_struct_free_f NG_RANnodeUEXnAPID_free;
asn_struct_print_f NG_RANnodeUEXnAPID_print;
asn_constr_check_f NG_RANnodeUEXnAPID_constraint;
ber_type_decoder_f NG_RANnodeUEXnAPID_decode_ber;
der_type_encoder_f NG_RANnodeUEXnAPID_encode_der;
xer_type_decoder_f NG_RANnodeUEXnAPID_decode_xer;
xer_type_encoder_f NG_RANnodeUEXnAPID_encode_xer;
oer_type_decoder_f NG_RANnodeUEXnAPID_decode_oer;
oer_type_encoder_f NG_RANnodeUEXnAPID_encode_oer;
per_type_decoder_f NG_RANnodeUEXnAPID_decode_uper;
per_type_encoder_f NG_RANnodeUEXnAPID_encode_uper;
per_type_decoder_f NG_RANnodeUEXnAPID_decode_aper;
per_type_encoder_f NG_RANnodeUEXnAPID_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _NG_RANnodeUEXnAPID_H_ */
#include <asn_internal.h>
