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

#ifndef	_ATR_H_
#define	_ATR_H_


#include <asn_application.h>

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

#ifdef __cplusplus
extern "C" {
#endif

/* ATR */
typedef OCTET_STRING_t	 ATR_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_ATR;
asn_struct_free_f ATR_free;
asn_struct_print_f ATR_print;
asn_constr_check_f ATR_constraint;
ber_type_decoder_f ATR_decode_ber;
der_type_encoder_f ATR_encode_der;
xer_type_decoder_f ATR_decode_xer;
xer_type_encoder_f ATR_encode_xer;

#ifdef __cplusplus
}
#endif

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