/**
  * Constructor
  *
  * @param char $start
  */
 public function __construct($start = NULL)
 {
     if ($start === NULL) {
         $start = 'C';
     }
     parent::__construct($start);
     /* Application Identifiers (AIs) */
     /* 
     array ( KIND_OF_DATA , MINLENGTH , MAXLENGTH , CHECKSUM )
     KIND_OF_DATA:		NUMERIC , ALPHA_NUMERIC or DATE_YYMMDD
     CHECKSUM:			bool (true / false)
     */
     $this->identifiersAi = array('00' => array(self::NUMERIC, 18, 18, true), '01' => array(self::NUMERIC, 14, 14, true), '02' => array(self::NUMERIC, 14, 14, true), '10' => array(self::ALPHA_NUMERIC, 1, 20, false), '11' => array(self::DATE_YYMMDD, 6, 6, false), '12' => array(self::DATE_YYMMDD, 6, 6, false), '13' => array(self::DATE_YYMMDD, 6, 6, false), '15' => array(self::DATE_YYMMDD, 6, 6, false), '17' => array(self::DATE_YYMMDD, 6, 6, false), '20' => array(self::NUMERIC, 2, 2, false), '21' => array(self::ALPHA_NUMERIC, 1, 20, false), '240' => array(self::ALPHA_NUMERIC, 1, 30, false), '241' => array(self::ALPHA_NUMERIC, 1, 30, false), '250' => array(self::ALPHA_NUMERIC, 1, 30, false), '251' => array(self::ALPHA_NUMERIC, 1, 30, false), '253' => array(self::NUMERIC, 14, 30, false), '30' => array(self::NUMERIC, 1, 8, false), '310y' => array(self::NUMERIC, 6, 6, false), '311y' => array(self::NUMERIC, 6, 6, false), '312y' => array(self::NUMERIC, 6, 6, false), '313y' => array(self::NUMERIC, 6, 6, false), '314y' => array(self::NUMERIC, 6, 6, false), '315y' => array(self::NUMERIC, 6, 6, false), '316y' => array(self::NUMERIC, 6, 6, false), '320y' => array(self::NUMERIC, 6, 6, false), '321y' => array(self::NUMERIC, 6, 6, false), '322y' => array(self::NUMERIC, 6, 6, false), '323y' => array(self::NUMERIC, 6, 6, false), '324y' => array(self::NUMERIC, 6, 6, false), '325y' => array(self::NUMERIC, 6, 6, false), '326y' => array(self::NUMERIC, 6, 6, false), '327y' => array(self::NUMERIC, 6, 6, false), '328y' => array(self::NUMERIC, 6, 6, false), '329y' => array(self::NUMERIC, 6, 6, false), '330y' => array(self::NUMERIC, 6, 6, false), '331y' => array(self::NUMERIC, 6, 6, false), '332y' => array(self::NUMERIC, 6, 6, false), '333y' => array(self::NUMERIC, 6, 6, false), '334y' => array(self::NUMERIC, 6, 6, false), '335y' => array(self::NUMERIC, 6, 6, false), '336y' => array(self::NUMERIC, 6, 6, false), '337y' => array(self::NUMERIC, 6, 6, false), '340y' => array(self::NUMERIC, 6, 6, false), '341y' => array(self::NUMERIC, 6, 6, false), '342y' => array(self::NUMERIC, 6, 6, false), '343y' => array(self::NUMERIC, 6, 6, false), '344y' => array(self::NUMERIC, 6, 6, false), '345y' => array(self::NUMERIC, 6, 6, false), '346y' => array(self::NUMERIC, 6, 6, false), '347y' => array(self::NUMERIC, 6, 6, false), '348y' => array(self::NUMERIC, 6, 6, false), '349y' => array(self::NUMERIC, 6, 6, false), '350y' => array(self::NUMERIC, 6, 6, false), '351y' => array(self::NUMERIC, 6, 6, false), '352y' => array(self::NUMERIC, 6, 6, false), '353y' => array(self::NUMERIC, 6, 6, false), '354y' => array(self::NUMERIC, 6, 6, false), '355y' => array(self::NUMERIC, 6, 6, false), '356y' => array(self::NUMERIC, 6, 6, false), '357y' => array(self::NUMERIC, 6, 6, false), '360y' => array(self::NUMERIC, 6, 6, false), '361y' => array(self::NUMERIC, 6, 6, false), '362y' => array(self::NUMERIC, 6, 6, false), '363y' => array(self::NUMERIC, 6, 6, false), '364y' => array(self::NUMERIC, 6, 6, false), '365y' => array(self::NUMERIC, 6, 6, false), '366y' => array(self::NUMERIC, 6, 6, false), '367y' => array(self::NUMERIC, 6, 6, false), '368y' => array(self::NUMERIC, 6, 6, false), '369y' => array(self::NUMERIC, 6, 6, false), '37' => array(self::NUMERIC, 1, 8, false), '390y' => array(self::NUMERIC, 1, 15, false), '391y' => array(self::NUMERIC, 4, 18, false), '392y' => array(self::NUMERIC, 1, 15, false), '393y' => array(self::NUMERIC, 4, 18, false), '400' => array(self::ALPHA_NUMERIC, 1, 30, false), '401' => array(self::ALPHA_NUMERIC, 1, 30, false), '402' => array(self::NUMERIC, 17, 17, false), '403' => array(self::ALPHA_NUMERIC, 1, 30, false), '410' => array(self::NUMERIC, 13, 13, true), '411' => array(self::NUMERIC, 13, 13, true), '412' => array(self::NUMERIC, 13, 13, true), '413' => array(self::NUMERIC, 13, 13, true), '414' => array(self::NUMERIC, 13, 13, true), '415' => array(self::NUMERIC, 13, 13, true), '420' => array(self::ALPHA_NUMERIC, 1, 20, false), '421' => array(self::ALPHA_NUMERIC, 4, 12, false), '422' => array(self::NUMERIC, 3, 3, false), '8001' => array(self::NUMERIC, 14, 14, false), '8002' => array(self::ALPHA_NUMERIC, 1, 20, false), '8003' => array(self::ALPHA_NUMERIC, 15, 30, false), '8004' => array(self::ALPHA_NUMERIC, 1, 30, false), '8005' => array(self::NUMERIC, 6, 6, false), '8006' => array(self::NUMERIC, 18, 18, false), '8007' => array(self::ALPHA_NUMERIC, 1, 30, false), '8018' => array(self::NUMERIC, 18, 18, false), '8020' => array(self::ALPHA_NUMERIC, 1, 25, false), '8100' => array(self::NUMERIC, 6, 6, false), '8101' => array(self::NUMERIC, 10, 10, false), '8102' => array(self::NUMERIC, 2, 2, false), '90' => array(self::ALPHA_NUMERIC, 1, 30, false), '91' => array(self::ALPHA_NUMERIC, 1, 30, false), '92' => array(self::ALPHA_NUMERIC, 1, 30, false), '93' => array(self::ALPHA_NUMERIC, 1, 30, false), '94' => array(self::ALPHA_NUMERIC, 1, 30, false), '95' => array(self::ALPHA_NUMERIC, 1, 30, false), '96' => array(self::ALPHA_NUMERIC, 1, 30, false), '97' => array(self::ALPHA_NUMERIC, 1, 30, false), '98' => array(self::ALPHA_NUMERIC, 1, 30, false), '99' => array(self::ALPHA_NUMERIC, 1, 30, false));
     $this->setStrictMode(true);
     $this->setTilde(true);
 }