/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "SABP-IEs"
 * 	found in "../../asn1/sabp/SABP-IEs.asn"
 */

#ifndef	_SABP_RepetitionNumber1_H_
#define	_SABP_RepetitionNumber1_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* SABP_RepetitionNumber1 */
typedef long	 SABP_RepetitionNumber1_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_SABP_RepetitionNumber1;
asn_struct_free_f SABP_RepetitionNumber1_free;
asn_struct_print_f SABP_RepetitionNumber1_print;
asn_constr_check_f SABP_RepetitionNumber1_constraint;
ber_type_decoder_f SABP_RepetitionNumber1_decode_ber;
der_type_encoder_f SABP_RepetitionNumber1_encode_der;
xer_type_decoder_f SABP_RepetitionNumber1_decode_xer;
xer_type_encoder_f SABP_RepetitionNumber1_encode_xer;
per_type_decoder_f SABP_RepetitionNumber1_decode_uper;
per_type_encoder_f SABP_RepetitionNumber1_encode_uper;
per_type_decoder_f SABP_RepetitionNumber1_decode_aper;
per_type_encoder_f SABP_RepetitionNumber1_encode_aper;

#ifdef __cplusplus
}
#endif

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