From d1bf02e156367aba777ae66a93d4eece12894e76 Mon Sep 17 00:00:00 2001 From: gitlost Date: Tue, 18 Mar 2025 18:47:04 +0000 Subject: [PATCH] gs1: csumalpha: improve warning, report both checksum chars (ticket #332, props Harald Oehlmann) --- ChangeLog | 2 + backend/gs1.c | 10 +- backend/tests/test_gs1.c | 1183 +++++++++++++++++++------------------- 3 files changed, 598 insertions(+), 597 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9a74016e..d44539ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,8 @@ Changes `option_1` by setting to -1 (min 3 words), 0 (<5% + 3 words) - Better warning messages on non-compliant heights - composite: warn if CC type upped from requested +- gs1: csumalpha: improve warning, report both chars (ticket #332, props Harald + Oehlmann) Bugs ---- diff --git a/backend/gs1.c b/backend/gs1.c index 7acc21d1..b895b92d 100644 --- a/backend/gs1.c +++ b/backend/gs1.c @@ -255,14 +255,8 @@ static int csumalpha(const unsigned char *data, int data_len, int offset, int mi if (de[0] != c1 || de[1] != c2) { *p_err_no = 3; - if (de[0] != c1) { - *p_err_posn = (de - data) + 1; - (void) gs1_err_msg_printf_nochk(err_msg, "Bad checksum '%c', expected '%c'", de[0], c1); - } else { - *p_err_posn = (de + 1 - data) + 1; - (void) gs1_err_msg_printf_nochk(err_msg, "Bad checksum '%c', expected '%c'", de[1], c2); - } - return 0; + *p_err_posn = (de - data) + 1; + return gs1_err_msg_printf_nochk(err_msg, "Bad checksum '%.2s', expected '%c%c'", de, c1, c2); } } diff --git a/backend/tests/test_gs1.c b/backend/tests/test_gs1.c index 4366d82f..aec2d3f2 100644 --- a/backend/tests/test_gs1.c +++ b/backend/tests/test_gs1.c @@ -1558,602 +1558,603 @@ static void test_gs1_lint(const testCtx *const p_ctx) { /* 53*/ { "[8013]0881063PhHvY89", 0, "80130881063PhHvY89", "" }, /* csumalpha */ /* 54*/ { "[8013]00000!HV", 0, "801300000!HV", "" }, /* csumalpha */ /* 55*/ { "[8013]99999zzzzzzzzzzzzzzzzzzT2", 0, "801399999zzzzzzzzzzzzzzzzzzT2", "" }, /* csumalpha */ - /* 56*/ { "[8013]1987654Ad4X4bL5ttr2310cXK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cXK", "261: AI (8013) position 24: Bad checksum 'X', expected '2'" }, /* csumalpha */ - /* 57*/ { "[8013]1987654Ad4X4bL5ttr2310c2X", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2X", "261: AI (8013) position 25: Bad checksum 'X', expected 'K'" }, /* csumalpha */ + /* 56*/ { "[8013]1987654Ad4X4bL5ttr2310cXK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cXK", "261: AI (8013) position 24: Bad checksum 'XK', expected '2K'" }, /* csumalpha */ + /* 57*/ { "[8013]1987654Ad4X4bL5ttr2310c2X", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2X", "261: AI (8013) position 24: Bad checksum '2X', expected '2K'" }, /* csumalpha */ /* 58*/ { "[8013]198765£Ad4X4bL5ttr2310c2K", ZINT_ERROR_INVALID_DATA, "", "250: Extended ASCII characters are not supported by GS1" }, /* csumalpha */ /* 59*/ { "[8013]1987654Ad4X4bL5ttr2310£2K", ZINT_ERROR_INVALID_DATA, "", "250: Extended ASCII characters are not supported by GS1" }, /* csumalpha */ - /* 60*/ { "[8013]1987654Ad4X4bL5ttr2310cxK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cxK", "261: AI (8013) position 24: Bad checksum 'x', expected '2'" }, /* csumalpha */ - /* 61*/ { "[8013]1987654Ad4X4bL5ttr2310c2x", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2x", "261: AI (8013) position 25: Bad checksum 'x', expected 'K'" }, /* csumalpha */ + /* 60*/ { "[8013]1987654Ad4X4bL5ttr2310cxK", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310cxK", "261: AI (8013) position 24: Bad checksum 'xK', expected '2K'" }, /* csumalpha */ + /* 61*/ { "[8013]1987654Ad4X4bL5ttr2310c2x", ZINT_WARN_NONCOMPLIANT, "80131987654Ad4X4bL5ttr2310c2x", "261: AI (8013) position 24: Bad checksum '2x', expected '2K'" }, /* csumalpha */ /* 62*/ { "[8013]12345678901234567890123NTX", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (8013)" }, /* csumalpha */ /* 63*/ { "[8013]1", ZINT_WARN_NONCOMPLIANT, "80131", "259: Invalid data length for AI (8013)" }, /* csumalpha */ - /* 64*/ { "[8013]12", ZINT_WARN_NONCOMPLIANT, "801312", "261: AI (8013) position 1: Bad checksum '1', expected '2'" }, /* csumalpha */ + /* 64*/ { "[8013]12", ZINT_WARN_NONCOMPLIANT, "801312", "261: AI (8013) position 1: Bad checksum '12', expected '22'" }, /* csumalpha */ /* 65*/ { "[8013]22229Z", 0, "801322229Z", "" }, /* csumalpha */ - /* 66*/ { "[8013]123", ZINT_WARN_NONCOMPLIANT, "8013123", "261: AI (8013) position 3: Bad checksum '3', expected 'W'" }, /* csumalpha */ + /* 66*/ { "[8013]123", ZINT_WARN_NONCOMPLIANT, "8013123", "261: AI (8013) position 2: Bad checksum '23', expected '2W'" }, /* csumalpha */ /* 67*/ { "[8013]12349Z", 0, "801312349Z", "" }, /* csumalpha */ - /* 68*/ { "[8013]00000!HW", ZINT_WARN_NONCOMPLIANT, "801300000!HW", "261: AI (8013) position 8: Bad checksum 'W', expected 'V'" }, /* csumalpha */ - /* 69*/ { "[8013]7907665Bm8v2BB", ZINT_WARN_NONCOMPLIANT, "80137907665Bm8v2BB", "261: AI (8013) position 13: Bad checksum 'B', expected 'A'" }, /* csumalpha */ + /* 68*/ { "[8013]00000!HW", ZINT_WARN_NONCOMPLIANT, "801300000!HW", "261: AI (8013) position 7: Bad checksum 'HW', expected 'HV'" }, /* csumalpha */ + /* 69*/ { "[8013]7907665Bm8v2BB", ZINT_WARN_NONCOMPLIANT, "80137907665Bm8v2BB", "261: AI (8013) position 13: Bad checksum 'BB', expected 'AB'" }, /* csumalpha */ /* 70*/ { "[8013]9999zzzzzzzzzzzzzzzzzzzNX", 0, "80139999zzzzzzzzzzzzzzzzzzzNX", "" }, /* csumalpha */ - /* 71*/ { "[11]120100", 0, "11120100", "" }, /* yymmd0 */ - /* 72*/ { "[11]120131", 0, "11120131", "" }, /* yymmd0 */ - /* 73*/ { "[11]120132", ZINT_WARN_NONCOMPLIANT, "11120132", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 74*/ { "[11]120229", 0, "11120229", "" }, /* yymmd0 */ - /* 75*/ { "[11]110229", ZINT_WARN_NONCOMPLIANT, "11110229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ - /* 76*/ { "[11]000229", 0, "11000229", "" }, /* yymmd0 NOTE: will be false in 2050 */ - /* 77*/ { "[11]480229", 0, "11480229", "" }, /* yymmd0 */ - /* 78*/ { "[11]500229", ZINT_WARN_NONCOMPLIANT, "11500229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ - /* 79*/ { "[11]980229", ZINT_WARN_NONCOMPLIANT, "11980229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ - /* 80*/ { "[11]110228", 0, "11110228", "" }, /* yymmd0 */ - /* 81*/ { "[11]120230", ZINT_WARN_NONCOMPLIANT, "11120230", "261: AI (11) position 5: Invalid day '30'" }, /* yymmd0 */ - /* 82*/ { "[11]120331", 0, "11120331", "" }, /* yymmd0 */ - /* 83*/ { "[11]120332", ZINT_WARN_NONCOMPLIANT, "11120332", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 84*/ { "[11]120430", 0, "11120430", "" }, /* yymmd0 */ - /* 85*/ { "[11]120431", ZINT_WARN_NONCOMPLIANT, "11120431", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ - /* 86*/ { "[11]120531", 0, "11120531", "" }, /* yymmd0 */ - /* 87*/ { "[11]120532", ZINT_WARN_NONCOMPLIANT, "11120532", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 88*/ { "[11]120630", 0, "11120630", "" }, /* yymmd0 */ - /* 89*/ { "[11]120631", ZINT_WARN_NONCOMPLIANT, "11120631", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ - /* 90*/ { "[11]120731", 0, "11120731", "" }, /* yymmd0 */ - /* 91*/ { "[11]120732", ZINT_WARN_NONCOMPLIANT, "11120732", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 92*/ { "[11]120831", 0, "11120831", "" }, /* yymmd0 */ - /* 93*/ { "[11]120832", ZINT_WARN_NONCOMPLIANT, "11120832", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 94*/ { "[11]120930", 0, "11120930", "" }, /* yymmd0 */ - /* 95*/ { "[11]120931", ZINT_WARN_NONCOMPLIANT, "11120931", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ - /* 96*/ { "[11]121031", 0, "11121031", "" }, /* yymmd0 */ - /* 97*/ { "[11]121032", ZINT_WARN_NONCOMPLIANT, "11121032", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /* 98*/ { "[11]121130", 0, "11121130", "" }, /* yymmd0 */ - /* 99*/ { "[11]121131", ZINT_WARN_NONCOMPLIANT, "11121131", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ - /*100*/ { "[11]121200", 0, "11121200", "" }, /* yymmd0 */ - /*101*/ { "[11]121231", 0, "11121231", "" }, /* yymmd0 */ - /*102*/ { "[11]121232", ZINT_WARN_NONCOMPLIANT, "11121232", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ - /*103*/ { "[11]120031", ZINT_WARN_NONCOMPLIANT, "11120031", "261: AI (11) position 3: Invalid month '00'" }, /* yymmd0 */ - /*104*/ { "[11]121331", ZINT_WARN_NONCOMPLIANT, "11121331", "261: AI (11) position 3: Invalid month '13'" }, /* yymmd0 */ - /*105*/ { "[4326]121231", 0, "4326121231", "" }, /* yymmdd */ - /*106*/ { "[4326]121200", ZINT_WARN_NONCOMPLIANT, "4326121200", "261: AI (4326) position 5: Invalid day '00'" }, /* yymmdd */ - /*107*/ { "[4326]120031", ZINT_WARN_NONCOMPLIANT, "4326120031", "261: AI (4326) position 3: Invalid month '00'" }, /* yymmdd */ - /*108*/ { "[4326]129931", ZINT_WARN_NONCOMPLIANT, "4326129931", "261: AI (4326) position 3: Invalid month '99'" }, /* yymmdd */ - /*109*/ { "[4326]121299", ZINT_WARN_NONCOMPLIANT, "4326121299", "261: AI (4326) position 5: Invalid day '99'" }, /* yymmdd */ - /*110*/ { "[4326]120230", ZINT_WARN_NONCOMPLIANT, "4326120230", "261: AI (4326) position 5: Invalid day '30'" }, /* yymmdd */ - /*111*/ { "[4326]110229", ZINT_WARN_NONCOMPLIANT, "4326110229", "261: AI (4326) position 5: Invalid day '29'" }, /* yymmdd */ - /*112*/ { "[4326]000229", 0, "4326000229", "" }, /* yymmdd NOTE: will be false in 2050 */ - /*113*/ { "[4326]940229", ZINT_WARN_NONCOMPLIANT, "4326940229", "261: AI (4326) position 5: Invalid day '29'" }, /* yymmdd */ - /*114*/ { "[7250]20241231", 0, "725020241231", "" }, /* yyyymmdd */ - /*115*/ { "[7250]99991231", 0, "725099991231", "" }, /* yyyymmdd */ - /*116*/ { "[7250]00001231", 0, "725000001231", "" }, /* yyyymmdd */ - /*117*/ { "[7250]20241200", ZINT_WARN_NONCOMPLIANT, "725020241200", "261: AI (7250) position 7: Invalid day '00'" }, /* yyyymmdd */ - /*118*/ { "[7250]20240001", ZINT_WARN_NONCOMPLIANT, "725020240001", "261: AI (7250) position 5: Invalid month '00'" }, /* yyyymmdd */ - /*119*/ { "[7250]20241301", ZINT_WARN_NONCOMPLIANT, "725020241301", "261: AI (7250) position 5: Invalid month '13'" }, /* yyyymmdd */ - /*120*/ { "[7250]20240230", ZINT_WARN_NONCOMPLIANT, "725020240230", "261: AI (7250) position 7: Invalid day '30'" }, /* yyyymmdd */ - /*121*/ { "[7250]20240229", 0, "725020240229", "" }, /* yyyymmdd */ - /*122*/ { "[7250]20230229", ZINT_WARN_NONCOMPLIANT, "725020230229", "261: AI (7250) position 7: Invalid day '29'" }, /* yyyymmdd */ - /*123*/ { "[7250]20000229", 0, "725020000229", "" }, /* yyyymmdd */ - /*124*/ { "[7250]30000229", ZINT_WARN_NONCOMPLIANT, "725030000229", "261: AI (7250) position 7: Invalid day '29'" }, /* yyyymmdd */ - /*125*/ { "[7250]20240930", 0, "725020240930", "" }, /* yyyymmdd */ - /*126*/ { "[7250]20240931", ZINT_WARN_NONCOMPLIANT, "725020240931", "261: AI (7250) position 7: Invalid day '31'" }, /* yyyymmdd */ - /*127*/ { "[4324]1212310000", 0, "43241212310000", "" }, /* hh,mm */ - /*128*/ { "[4324]1212312359", 0, "43241212312359", "" }, /* hh,mm */ - /*129*/ { "[4324]1212312400", ZINT_WARN_NONCOMPLIANT, "43241212312400", "261: AI (4324) position 7: Invalid hour of day '24'" }, /* hh,mm */ - /*130*/ { "[4324]1212312360", ZINT_WARN_NONCOMPLIANT, "43241212312360", "261: AI (4324) position 9: Invalid minutes in the hour '60'" }, /* hh,mm */ - /*131*/ { "[8008]121231000000", 0, "8008121231000000", "" }, /* hh,mm,ss */ - /*132*/ { "[8008]1212310000", 0, "80081212310000", "" }, /* hh,mm[,ss] */ - /*133*/ { "[8008]12123100", 0, "800812123100", "" }, /* hh[,mm,ss] */ - /*134*/ { "[8008]12123123", 0, "800812123123", "" }, /* hh[,mm,ss] */ - /*135*/ { "[8008]12123124", ZINT_WARN_NONCOMPLIANT, "800812123124", "261: AI (8008) position 7: Invalid hour of day '24'" }, /* hh[,mm,ss] */ - /*136*/ { "[8008]1212312359", 0, "80081212312359", "" }, /* hh,mm[,ss] */ - /*137*/ { "[8008]1212312360", ZINT_WARN_NONCOMPLIANT, "80081212312360", "261: AI (8008) position 9: Invalid minutes in the hour '60'" }, /* hh,mm[,ss] */ - /*138*/ { "[8008]121231235959", 0, "8008121231235959", "" }, /* hh,mm,ss */ - /*139*/ { "[8008]121231235960", ZINT_WARN_NONCOMPLIANT, "8008121231235960", "261: AI (8008) position 11: Invalid seconds in the minute '60'" }, /* hh,mm,ss */ - /*140*/ { "[422]004", 0, "422004", "" }, /* iso3166 */ - /*141*/ { "[422]894", 0, "422894", "" }, /* iso3166 */ - /*142*/ { "[422]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, /* iso3166 */ - /*143*/ { "[422]0A", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, /* iso3166 */ - /*144*/ { "[422]003", ZINT_WARN_NONCOMPLIANT, "422003", "261: AI (422) position 1: Unknown country code '003'" }, /* iso3166 */ - /*145*/ { "[422]895", ZINT_WARN_NONCOMPLIANT, "422895", "261: AI (422) position 1: Unknown country code '895'" }, /* iso3166 */ - /*146*/ { "[422]999", ZINT_WARN_NONCOMPLIANT, "422999", "261: AI (422) position 1: Unknown country code '999'" }, /* iso3166 */ - /*147*/ { "[423]004", 0, "423004", "" }, /* iso3166list */ - /*148*/ { "[423]004894", 0, "423004894", "" }, /* iso3166list */ - /*149*/ { "[423]004894004", 0, "423004894004", "" }, /* iso3166list */ - /*150*/ { "[423]004894004894", 0, "423004894004894", "" }, /* iso3166list */ - /*151*/ { "[423]004894004894004", 0, "423004894004894004", "" }, /* iso3166list */ - /*152*/ { "[423]004894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*153*/ { "[423]123894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*154*/ { "[423]A04894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*155*/ { "[423]00489400489400489", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*156*/ { "[423]0048940048940048", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*157*/ { "[423]00489400489400", ZINT_WARN_NONCOMPLIANT, "42300489400489400", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*158*/ { "[423]0048940048940", ZINT_WARN_NONCOMPLIANT, "4230048940048940", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*159*/ { "[423]00489400489", ZINT_WARN_NONCOMPLIANT, "42300489400489", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*160*/ { "[423]0048940048", ZINT_WARN_NONCOMPLIANT, "4230048940048", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*161*/ { "[423]00489400", ZINT_WARN_NONCOMPLIANT, "42300489400", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*162*/ { "[423]0048940", ZINT_WARN_NONCOMPLIANT, "4230048940", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*163*/ { "[423]00489", ZINT_WARN_NONCOMPLIANT, "42300489", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*164*/ { "[423]0048", ZINT_WARN_NONCOMPLIANT, "4230048", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*165*/ { "[423]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*166*/ { "[423]0", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ - /*167*/ { "[423]004894004894003", ZINT_WARN_NONCOMPLIANT, "423004894004894003", "261: AI (423) position 13: Unknown country code '003'" }, /* iso3166list */ - /*168*/ { "[423]004894004895004", ZINT_WARN_NONCOMPLIANT, "423004894004895004", "261: AI (423) position 10: Unknown country code '895'" }, /* iso3166list */ - /*169*/ { "[423]004894004999004", ZINT_WARN_NONCOMPLIANT, "423004894004999004", "261: AI (423) position 10: Unknown country code '999'" }, /* iso3166list */ - /*170*/ { "[423]004894005894004", ZINT_WARN_NONCOMPLIANT, "423004894005894004", "261: AI (423) position 7: Unknown country code '005'" }, /* iso3166list */ - /*171*/ { "[423]004893004894004", ZINT_WARN_NONCOMPLIANT, "423004893004894004", "261: AI (423) position 4: Unknown country code '893'" }, /* iso3166list */ - /*172*/ { "[423]004999004894004", ZINT_WARN_NONCOMPLIANT, "423004999004894004", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ - /*173*/ { "[423]003894004894004", ZINT_WARN_NONCOMPLIANT, "423003894004894004", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ - /*174*/ { "[423]004894004433", ZINT_WARN_NONCOMPLIANT, "423004894004433", "261: AI (423) position 10: Unknown country code '433'" }, /* iso3166list */ - /*175*/ { "[423]004894435894", ZINT_WARN_NONCOMPLIANT, "423004894435894", "261: AI (423) position 7: Unknown country code '435'" }, /* iso3166list */ - /*176*/ { "[423]004433004894", ZINT_WARN_NONCOMPLIANT, "423004433004894", "261: AI (423) position 4: Unknown country code '433'" }, /* iso3166list */ - /*177*/ { "[423]432894004894", ZINT_WARN_NONCOMPLIANT, "423432894004894", "261: AI (423) position 1: Unknown country code '432'" }, /* iso3166list */ - /*178*/ { "[423]004894003", ZINT_WARN_NONCOMPLIANT, "423004894003", "261: AI (423) position 7: Unknown country code '003'" }, /* iso3166list */ - /*179*/ { "[423]004895004", ZINT_WARN_NONCOMPLIANT, "423004895004", "261: AI (423) position 4: Unknown country code '895'" }, /* iso3166list */ - /*180*/ { "[423]004999004", ZINT_WARN_NONCOMPLIANT, "423004999004", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ - /*181*/ { "[423]003894004", ZINT_WARN_NONCOMPLIANT, "423003894004", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ - /*182*/ { "[423]004999", ZINT_WARN_NONCOMPLIANT, "423004999", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ - /*183*/ { "[423]000894", ZINT_WARN_NONCOMPLIANT, "423000894", "261: AI (423) position 1: Unknown country code '000'" }, /* iso3166list */ - /*184*/ { "[423]003", ZINT_WARN_NONCOMPLIANT, "423003", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ - /*185*/ { "[7030]999A", 0, "7030999A", "" }, /* iso3166999 */ - /*186*/ { "[7030]894A", 0, "7030894A", "" }, /* iso3166999 */ - /*187*/ { "[7030]004A", 0, "7030004A", "" }, /* iso3166999 */ - /*188*/ { "[7030]004", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, /* iso3166999 */ - /*189*/ { "[7030]04", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, /* iso3166999 */ - /*190*/ { "[7030]001A", ZINT_WARN_NONCOMPLIANT, "7030001A", "261: AI (7030) position 1: Unknown country code '001'" }, /* iso3166999 */ - /*191*/ { "[7030]998A", ZINT_WARN_NONCOMPLIANT, "7030998A", "261: AI (7030) position 1: Unknown country code '998'" }, /* iso3166999 */ + /* 71*/ { "[01]09521234567899[10]LOT[8014]1234567MA5", ZINT_WARN_NONCOMPLIANT, "010952123456789910LOT\03580141234567MA5", "261: AI (8014) position 9: Bad checksum 'A5', expected 'A4'" }, /* csumalpha, issue #332 */ + /* 72*/ { "[11]120100", 0, "11120100", "" }, /* yymmd0 */ + /* 73*/ { "[11]120131", 0, "11120131", "" }, /* yymmd0 */ + /* 74*/ { "[11]120132", ZINT_WARN_NONCOMPLIANT, "11120132", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 75*/ { "[11]120229", 0, "11120229", "" }, /* yymmd0 */ + /* 76*/ { "[11]110229", ZINT_WARN_NONCOMPLIANT, "11110229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ + /* 77*/ { "[11]000229", 0, "11000229", "" }, /* yymmd0 NOTE: will be false in 2050 */ + /* 78*/ { "[11]480229", 0, "11480229", "" }, /* yymmd0 */ + /* 79*/ { "[11]500229", ZINT_WARN_NONCOMPLIANT, "11500229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ + /* 80*/ { "[11]980229", ZINT_WARN_NONCOMPLIANT, "11980229", "261: AI (11) position 5: Invalid day '29'" }, /* yymmd0 */ + /* 81*/ { "[11]110228", 0, "11110228", "" }, /* yymmd0 */ + /* 82*/ { "[11]120230", ZINT_WARN_NONCOMPLIANT, "11120230", "261: AI (11) position 5: Invalid day '30'" }, /* yymmd0 */ + /* 83*/ { "[11]120331", 0, "11120331", "" }, /* yymmd0 */ + /* 84*/ { "[11]120332", ZINT_WARN_NONCOMPLIANT, "11120332", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 85*/ { "[11]120430", 0, "11120430", "" }, /* yymmd0 */ + /* 86*/ { "[11]120431", ZINT_WARN_NONCOMPLIANT, "11120431", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ + /* 87*/ { "[11]120531", 0, "11120531", "" }, /* yymmd0 */ + /* 88*/ { "[11]120532", ZINT_WARN_NONCOMPLIANT, "11120532", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 89*/ { "[11]120630", 0, "11120630", "" }, /* yymmd0 */ + /* 90*/ { "[11]120631", ZINT_WARN_NONCOMPLIANT, "11120631", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ + /* 91*/ { "[11]120731", 0, "11120731", "" }, /* yymmd0 */ + /* 92*/ { "[11]120732", ZINT_WARN_NONCOMPLIANT, "11120732", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 93*/ { "[11]120831", 0, "11120831", "" }, /* yymmd0 */ + /* 94*/ { "[11]120832", ZINT_WARN_NONCOMPLIANT, "11120832", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 95*/ { "[11]120930", 0, "11120930", "" }, /* yymmd0 */ + /* 96*/ { "[11]120931", ZINT_WARN_NONCOMPLIANT, "11120931", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ + /* 97*/ { "[11]121031", 0, "11121031", "" }, /* yymmd0 */ + /* 98*/ { "[11]121032", ZINT_WARN_NONCOMPLIANT, "11121032", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /* 99*/ { "[11]121130", 0, "11121130", "" }, /* yymmd0 */ + /*100*/ { "[11]121131", ZINT_WARN_NONCOMPLIANT, "11121131", "261: AI (11) position 5: Invalid day '31'" }, /* yymmd0 */ + /*101*/ { "[11]121200", 0, "11121200", "" }, /* yymmd0 */ + /*102*/ { "[11]121231", 0, "11121231", "" }, /* yymmd0 */ + /*103*/ { "[11]121232", ZINT_WARN_NONCOMPLIANT, "11121232", "261: AI (11) position 5: Invalid day '32'" }, /* yymmd0 */ + /*104*/ { "[11]120031", ZINT_WARN_NONCOMPLIANT, "11120031", "261: AI (11) position 3: Invalid month '00'" }, /* yymmd0 */ + /*105*/ { "[11]121331", ZINT_WARN_NONCOMPLIANT, "11121331", "261: AI (11) position 3: Invalid month '13'" }, /* yymmd0 */ + /*106*/ { "[4326]121231", 0, "4326121231", "" }, /* yymmdd */ + /*107*/ { "[4326]121200", ZINT_WARN_NONCOMPLIANT, "4326121200", "261: AI (4326) position 5: Invalid day '00'" }, /* yymmdd */ + /*108*/ { "[4326]120031", ZINT_WARN_NONCOMPLIANT, "4326120031", "261: AI (4326) position 3: Invalid month '00'" }, /* yymmdd */ + /*109*/ { "[4326]129931", ZINT_WARN_NONCOMPLIANT, "4326129931", "261: AI (4326) position 3: Invalid month '99'" }, /* yymmdd */ + /*110*/ { "[4326]121299", ZINT_WARN_NONCOMPLIANT, "4326121299", "261: AI (4326) position 5: Invalid day '99'" }, /* yymmdd */ + /*111*/ { "[4326]120230", ZINT_WARN_NONCOMPLIANT, "4326120230", "261: AI (4326) position 5: Invalid day '30'" }, /* yymmdd */ + /*112*/ { "[4326]110229", ZINT_WARN_NONCOMPLIANT, "4326110229", "261: AI (4326) position 5: Invalid day '29'" }, /* yymmdd */ + /*113*/ { "[4326]000229", 0, "4326000229", "" }, /* yymmdd NOTE: will be false in 2050 */ + /*114*/ { "[4326]940229", ZINT_WARN_NONCOMPLIANT, "4326940229", "261: AI (4326) position 5: Invalid day '29'" }, /* yymmdd */ + /*115*/ { "[7250]20241231", 0, "725020241231", "" }, /* yyyymmdd */ + /*116*/ { "[7250]99991231", 0, "725099991231", "" }, /* yyyymmdd */ + /*117*/ { "[7250]00001231", 0, "725000001231", "" }, /* yyyymmdd */ + /*118*/ { "[7250]20241200", ZINT_WARN_NONCOMPLIANT, "725020241200", "261: AI (7250) position 7: Invalid day '00'" }, /* yyyymmdd */ + /*119*/ { "[7250]20240001", ZINT_WARN_NONCOMPLIANT, "725020240001", "261: AI (7250) position 5: Invalid month '00'" }, /* yyyymmdd */ + /*120*/ { "[7250]20241301", ZINT_WARN_NONCOMPLIANT, "725020241301", "261: AI (7250) position 5: Invalid month '13'" }, /* yyyymmdd */ + /*121*/ { "[7250]20240230", ZINT_WARN_NONCOMPLIANT, "725020240230", "261: AI (7250) position 7: Invalid day '30'" }, /* yyyymmdd */ + /*122*/ { "[7250]20240229", 0, "725020240229", "" }, /* yyyymmdd */ + /*123*/ { "[7250]20230229", ZINT_WARN_NONCOMPLIANT, "725020230229", "261: AI (7250) position 7: Invalid day '29'" }, /* yyyymmdd */ + /*124*/ { "[7250]20000229", 0, "725020000229", "" }, /* yyyymmdd */ + /*125*/ { "[7250]30000229", ZINT_WARN_NONCOMPLIANT, "725030000229", "261: AI (7250) position 7: Invalid day '29'" }, /* yyyymmdd */ + /*126*/ { "[7250]20240930", 0, "725020240930", "" }, /* yyyymmdd */ + /*127*/ { "[7250]20240931", ZINT_WARN_NONCOMPLIANT, "725020240931", "261: AI (7250) position 7: Invalid day '31'" }, /* yyyymmdd */ + /*128*/ { "[4324]1212310000", 0, "43241212310000", "" }, /* hh,mm */ + /*129*/ { "[4324]1212312359", 0, "43241212312359", "" }, /* hh,mm */ + /*130*/ { "[4324]1212312400", ZINT_WARN_NONCOMPLIANT, "43241212312400", "261: AI (4324) position 7: Invalid hour of day '24'" }, /* hh,mm */ + /*131*/ { "[4324]1212312360", ZINT_WARN_NONCOMPLIANT, "43241212312360", "261: AI (4324) position 9: Invalid minutes in the hour '60'" }, /* hh,mm */ + /*132*/ { "[8008]121231000000", 0, "8008121231000000", "" }, /* hh,mm,ss */ + /*133*/ { "[8008]1212310000", 0, "80081212310000", "" }, /* hh,mm[,ss] */ + /*134*/ { "[8008]12123100", 0, "800812123100", "" }, /* hh[,mm,ss] */ + /*135*/ { "[8008]12123123", 0, "800812123123", "" }, /* hh[,mm,ss] */ + /*136*/ { "[8008]12123124", ZINT_WARN_NONCOMPLIANT, "800812123124", "261: AI (8008) position 7: Invalid hour of day '24'" }, /* hh[,mm,ss] */ + /*137*/ { "[8008]1212312359", 0, "80081212312359", "" }, /* hh,mm[,ss] */ + /*138*/ { "[8008]1212312360", ZINT_WARN_NONCOMPLIANT, "80081212312360", "261: AI (8008) position 9: Invalid minutes in the hour '60'" }, /* hh,mm[,ss] */ + /*139*/ { "[8008]121231235959", 0, "8008121231235959", "" }, /* hh,mm,ss */ + /*140*/ { "[8008]121231235960", ZINT_WARN_NONCOMPLIANT, "8008121231235960", "261: AI (8008) position 11: Invalid seconds in the minute '60'" }, /* hh,mm,ss */ + /*141*/ { "[422]004", 0, "422004", "" }, /* iso3166 */ + /*142*/ { "[422]894", 0, "422894", "" }, /* iso3166 */ + /*143*/ { "[422]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, /* iso3166 */ + /*144*/ { "[422]0A", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (422)" }, /* iso3166 */ + /*145*/ { "[422]003", ZINT_WARN_NONCOMPLIANT, "422003", "261: AI (422) position 1: Unknown country code '003'" }, /* iso3166 */ + /*146*/ { "[422]895", ZINT_WARN_NONCOMPLIANT, "422895", "261: AI (422) position 1: Unknown country code '895'" }, /* iso3166 */ + /*147*/ { "[422]999", ZINT_WARN_NONCOMPLIANT, "422999", "261: AI (422) position 1: Unknown country code '999'" }, /* iso3166 */ + /*148*/ { "[423]004", 0, "423004", "" }, /* iso3166list */ + /*149*/ { "[423]004894", 0, "423004894", "" }, /* iso3166list */ + /*150*/ { "[423]004894004", 0, "423004894004", "" }, /* iso3166list */ + /*151*/ { "[423]004894004894", 0, "423004894004894", "" }, /* iso3166list */ + /*152*/ { "[423]004894004894004", 0, "423004894004894004", "" }, /* iso3166list */ + /*153*/ { "[423]004894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*154*/ { "[423]123894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*155*/ { "[423]A04894004894004894", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*156*/ { "[423]00489400489400489", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*157*/ { "[423]0048940048940048", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*158*/ { "[423]00489400489400", ZINT_WARN_NONCOMPLIANT, "42300489400489400", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*159*/ { "[423]0048940048940", ZINT_WARN_NONCOMPLIANT, "4230048940048940", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*160*/ { "[423]00489400489", ZINT_WARN_NONCOMPLIANT, "42300489400489", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*161*/ { "[423]0048940048", ZINT_WARN_NONCOMPLIANT, "4230048940048", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*162*/ { "[423]00489400", ZINT_WARN_NONCOMPLIANT, "42300489400", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*163*/ { "[423]0048940", ZINT_WARN_NONCOMPLIANT, "4230048940", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*164*/ { "[423]00489", ZINT_WARN_NONCOMPLIANT, "42300489", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*165*/ { "[423]0048", ZINT_WARN_NONCOMPLIANT, "4230048", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*166*/ { "[423]00", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*167*/ { "[423]0", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (423)" }, /* iso3166list */ + /*168*/ { "[423]004894004894003", ZINT_WARN_NONCOMPLIANT, "423004894004894003", "261: AI (423) position 13: Unknown country code '003'" }, /* iso3166list */ + /*169*/ { "[423]004894004895004", ZINT_WARN_NONCOMPLIANT, "423004894004895004", "261: AI (423) position 10: Unknown country code '895'" }, /* iso3166list */ + /*170*/ { "[423]004894004999004", ZINT_WARN_NONCOMPLIANT, "423004894004999004", "261: AI (423) position 10: Unknown country code '999'" }, /* iso3166list */ + /*171*/ { "[423]004894005894004", ZINT_WARN_NONCOMPLIANT, "423004894005894004", "261: AI (423) position 7: Unknown country code '005'" }, /* iso3166list */ + /*172*/ { "[423]004893004894004", ZINT_WARN_NONCOMPLIANT, "423004893004894004", "261: AI (423) position 4: Unknown country code '893'" }, /* iso3166list */ + /*173*/ { "[423]004999004894004", ZINT_WARN_NONCOMPLIANT, "423004999004894004", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ + /*174*/ { "[423]003894004894004", ZINT_WARN_NONCOMPLIANT, "423003894004894004", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ + /*175*/ { "[423]004894004433", ZINT_WARN_NONCOMPLIANT, "423004894004433", "261: AI (423) position 10: Unknown country code '433'" }, /* iso3166list */ + /*176*/ { "[423]004894435894", ZINT_WARN_NONCOMPLIANT, "423004894435894", "261: AI (423) position 7: Unknown country code '435'" }, /* iso3166list */ + /*177*/ { "[423]004433004894", ZINT_WARN_NONCOMPLIANT, "423004433004894", "261: AI (423) position 4: Unknown country code '433'" }, /* iso3166list */ + /*178*/ { "[423]432894004894", ZINT_WARN_NONCOMPLIANT, "423432894004894", "261: AI (423) position 1: Unknown country code '432'" }, /* iso3166list */ + /*179*/ { "[423]004894003", ZINT_WARN_NONCOMPLIANT, "423004894003", "261: AI (423) position 7: Unknown country code '003'" }, /* iso3166list */ + /*180*/ { "[423]004895004", ZINT_WARN_NONCOMPLIANT, "423004895004", "261: AI (423) position 4: Unknown country code '895'" }, /* iso3166list */ + /*181*/ { "[423]004999004", ZINT_WARN_NONCOMPLIANT, "423004999004", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ + /*182*/ { "[423]003894004", ZINT_WARN_NONCOMPLIANT, "423003894004", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ + /*183*/ { "[423]004999", ZINT_WARN_NONCOMPLIANT, "423004999", "261: AI (423) position 4: Unknown country code '999'" }, /* iso3166list */ + /*184*/ { "[423]000894", ZINT_WARN_NONCOMPLIANT, "423000894", "261: AI (423) position 1: Unknown country code '000'" }, /* iso3166list */ + /*185*/ { "[423]003", ZINT_WARN_NONCOMPLIANT, "423003", "261: AI (423) position 1: Unknown country code '003'" }, /* iso3166list */ + /*186*/ { "[7030]999A", 0, "7030999A", "" }, /* iso3166999 */ + /*187*/ { "[7030]894A", 0, "7030894A", "" }, /* iso3166999 */ + /*188*/ { "[7030]004A", 0, "7030004A", "" }, /* iso3166999 */ + /*189*/ { "[7030]004", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, /* iso3166999 */ + /*190*/ { "[7030]04", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (7030)" }, /* iso3166999 */ + /*191*/ { "[7030]001A", ZINT_WARN_NONCOMPLIANT, "7030001A", "261: AI (7030) position 1: Unknown country code '001'" }, /* iso3166999 */ /*192*/ { "[7030]998A", ZINT_WARN_NONCOMPLIANT, "7030998A", "261: AI (7030) position 1: Unknown country code '998'" }, /* iso3166999 */ - /*193*/ { "[4307]AD", 0, "4307AD", "" }, /* iso3166alpha2 */ - /*194*/ { "[4307]AC", ZINT_WARN_NONCOMPLIANT, "4307AC", "261: AI (4307) position 1: Unknown country code 'AC'" }, /* iso3166alpha2 */ - /*195*/ { "[3910]0081", 0, "39100081", "" }, /* iso4217 */ - /*196*/ { "[3910]9991", 0, "39109991", "" }, /* iso4217 */ - /*197*/ { "[3910]9971", 0, "39109971", "" }, /* iso4217 */ - /*198*/ { "[3910]9251", 0, "39109251", "" }, /* iso4217 */ - /*199*/ { "[3910]01", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, /* iso4217 */ - /*200*/ { "[3910]001", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, /* iso4217 */ - /*201*/ { "[3910]9981", ZINT_WARN_NONCOMPLIANT, "39109981", "261: AI (3910) position 1: Unknown currency code '998'" }, /* iso4217 */ - /*202*/ { "[3910]0041", ZINT_WARN_NONCOMPLIANT, "39100041", "261: AI (3910) position 1: Unknown currency code '004'" }, /* iso4217 */ - /*203*/ { "[3910]8941", ZINT_WARN_NONCOMPLIANT, "39108941", "261: AI (3910) position 1: Unknown currency code '894'" }, /* iso4217 */ - /*204*/ { "[4300]%12", 0, "4300%12", "" }, /* pcenc */ - /*205*/ { "[4300]%1", ZINT_WARN_NONCOMPLIANT, "4300%1", "261: AI (4300) position 1: Invalid % escape" }, /* pcenc */ - /*206*/ { "[4300]%", ZINT_WARN_NONCOMPLIANT, "4300%", "261: AI (4300) position 1: Invalid % escape" }, /* pcenc */ - /*207*/ { "[4300]12%1212", 0, "430012%1212", "" }, /* pcenc */ - /*208*/ { "[4300]12%1G12", ZINT_WARN_NONCOMPLIANT, "430012%1G12", "261: AI (4300) position 5: Invalid character for percent encoding" }, /* pcenc */ - /*209*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", 0, "4308ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", "" }, /* no pcenc */ - /*210*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+123", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4308)" }, /* no pcenc */ - /*211*/ { "[4309]02790858483015297971", 0, "430902790858483015297971", "" }, /* latlong */ - /*212*/ { "[4309]18000000013015297971", ZINT_WARN_NONCOMPLIANT, "430918000000013015297971", "261: AI (4309) position 10: Invalid latitude" }, /* latlong */ - /*213*/ { "[4309]02790858413600000001", ZINT_WARN_NONCOMPLIANT, "430902790858413600000001", "261: AI (4309) position 20: Invalid longitude" }, /* latlong */ - /*214*/ { "[4321]1", 0, "43211", "" }, /* yesno */ - /*215*/ { "[4321]0", 0, "43210", "" }, /* yesno */ - /*216*/ { "[4321]2", ZINT_WARN_NONCOMPLIANT, "43212", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, /* yesno */ - /*217*/ { "[4321]9", ZINT_WARN_NONCOMPLIANT, "43219", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, /* yesno */ - /*218*/ { "[7040]1234", 0, "70401234", "" }, /* importeridx */ - /*219*/ { "[7040]123A", 0, "7040123A", "" }, /* importeridx */ - /*220*/ { "[7040]123Z", 0, "7040123Z", "" }, /* importeridx */ - /*221*/ { "[7040]123a", 0, "7040123a", "" }, /* importeridx */ - /*222*/ { "[7040]123z", 0, "7040123z", "" }, /* importeridx */ - /*223*/ { "[7040]123-", 0, "7040123-", "" }, /* importeridx */ - /*224*/ { "[7040]123_", 0, "7040123_", "" }, /* importeridx */ - /*225*/ { "[7040]123!", ZINT_WARN_NONCOMPLIANT, "7040123!", "261: AI (7040) position 4: Invalid importer index '!'" }, /* importeridx */ - /*226*/ { "[7040]123/", ZINT_WARN_NONCOMPLIANT, "7040123/", "261: AI (7040) position 4: Invalid importer index '/'" }, /* importeridx */ - /*227*/ { "[7040]123:", ZINT_WARN_NONCOMPLIANT, "7040123:", "261: AI (7040) position 4: Invalid importer index ':'" }, /* importeridx */ - /*228*/ { "[7040]123?", ZINT_WARN_NONCOMPLIANT, "7040123?", "261: AI (7040) position 4: Invalid importer index '?'" }, /* importeridx */ - /*229*/ { "[7241]01", 0, "724101", "" }, /* mediatype */ - /*230*/ { "[7241]10", 0, "724110", "" }, /* mediatype */ - /*231*/ { "[7241]80", 0, "724180", "" }, /* mediatype */ - /*232*/ { "[7241]99", 0, "724199", "" }, /* mediatype */ - /*233*/ { "[7241]00", ZINT_WARN_NONCOMPLIANT, "724100", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ - /*234*/ { "[7241]11", ZINT_WARN_NONCOMPLIANT, "724111", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ - /*235*/ { "[7241]79", ZINT_WARN_NONCOMPLIANT, "724179", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ - /*236*/ { "[8001]12341234512311", 0, "800112341234512311", "" }, /* nonzero */ - /*237*/ { "[8001]00010000100100", 0, "800100010000100100", "" }, /* nonzero */ - /*238*/ { "[8001]00001234512311", ZINT_WARN_NONCOMPLIANT, "800100001234512311", "261: AI (8001) position 1: Zero not permitted" }, /* nonzero */ - /*239*/ { "[8001]12340000012311", ZINT_WARN_NONCOMPLIANT, "800112340000012311", "261: AI (8001) position 5: Zero not permitted" }, /* nonzero */ - /*240*/ { "[8001]00010000100011", ZINT_WARN_NONCOMPLIANT, "800100010000100011", "261: AI (8001) position 10: Zero not permitted" }, /* nonzero */ - /*241*/ { "[8001]00010000100101", 0, "800100010000100101", "" }, /* winding */ - /*242*/ { "[8001]00010000100111", 0, "800100010000100111", "" }, /* winding */ - /*243*/ { "[8001]00010000100191", 0, "800100010000100191", "" }, /* winding */ - /*244*/ { "[8001]00010000100121", ZINT_WARN_NONCOMPLIANT, "800100010000100121", "261: AI (8001) position 13: Invalid winding direction '2'" }, /* winding */ - /*245*/ { "[8001]00010000100131", ZINT_WARN_NONCOMPLIANT, "800100010000100131", "261: AI (8001) position 13: Invalid winding direction '3'" }, /* winding */ - /*246*/ { "[8001]00010000100171", ZINT_WARN_NONCOMPLIANT, "800100010000100171", "261: AI (8001) position 13: Invalid winding direction '7'" }, /* winding */ - /*247*/ { "[8001]00010000100181", ZINT_WARN_NONCOMPLIANT, "800100010000100181", "261: AI (8001) position 13: Invalid winding direction '8'" }, /* winding */ - /*248*/ { "[8003]01234567890128", 0, "800301234567890128", "" }, /* zero */ - /*249*/ { "[8003]11234567890128", ZINT_WARN_NONCOMPLIANT, "800311234567890128", "261: AI (8003) position 1: Zero is required" }, /* zero */ - /*250*/ { "[8003]91234567890128", ZINT_WARN_NONCOMPLIANT, "800391234567890128", "261: AI (8003) position 1: Zero is required" }, /* zero */ - /*251*/ { "[8006]123456789012310101", 0, "8006123456789012310101", "" }, /* pieceoftotal */ - /*252*/ { "[8006]123456789012310199", 0, "8006123456789012310199", "" }, /* pieceoftotal */ - /*253*/ { "[8006]123456789012319999", 0, "8006123456789012319999", "" }, /* pieceoftotal */ - /*254*/ { "[8006]123456789012310001", ZINT_WARN_NONCOMPLIANT, "8006123456789012310001", "261: AI (8006) position 15: Piece number cannot be zero" }, /* pieceoftotal */ - /*255*/ { "[8006]123456789012310100", ZINT_WARN_NONCOMPLIANT, "8006123456789012310100", "261: AI (8006) position 15: Total number cannot be zero" }, /* pieceoftotal */ - /*256*/ { "[8006]123456789012310201", ZINT_WARN_NONCOMPLIANT, "8006123456789012310201", "261: AI (8006) position 15: Piece number '02' exceeds total '01'" }, /* pieceoftotal */ - /*257*/ { "[8006]123456789012319998", ZINT_WARN_NONCOMPLIANT, "8006123456789012319998", "261: AI (8006) position 15: Piece number '99' exceeds total '98'" }, /* pieceoftotal */ - /*258*/ { "[8007]GB82WEST12345698765432", 0, "8007GB82WEST12345698765432", "" }, /* iban */ - /*259*/ { "[8007]GB83WEST12345698765432", ZINT_WARN_NONCOMPLIANT, "8007GB83WEST12345698765432", "261: AI (8007) position 3: Bad IBAN checksum '83', expected '82'" }, /* iban */ - /*260*/ { "[8007]BE71096123456769", 0, "8007BE71096123456769", "" }, /* iban */ - /*261*/ { "[8007]BE71096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE71096123456760", "261: AI (8007) position 3: Bad IBAN checksum '71', expected '23'" }, /* iban */ - /*262*/ { "[8007]BE01096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE01096123456760", "261: AI (8007) position 3: Bad IBAN checksum '01', expected '23'" }, /* iban */ - /*263*/ { "[8007]BE00096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE00096123456760", "261: AI (8007) position 3: Bad IBAN checksum '00', expected '23'" }, /* iban */ - /*264*/ { "[8007]LC14BOSL123456789012345678901234", 0, "8007LC14BOSL123456789012345678901234", "" }, /* iban */ - /*265*/ { "[8007]LC14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007LC14BOSL123456789012345678901230", "261: AI (8007) position 3: Bad IBAN checksum '14', expected '25'" }, /* iban */ - /*266*/ { "[8007]A114BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007A114BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code 'A1'" }, /* iban */ - /*267*/ { "[8007]1A14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "80071A14BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code '1A'" }, /* iban */ - /*268*/ { "[8007]AA14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007AA14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'AA'" }, /* iban */ - /*269*/ { "[8007]ZZ14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZZ14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'ZZ'" }, /* iban */ - /*270*/ { "[8007]ZW33BOSL123456789012345678901230", 0, "8007ZW33BOSL123456789012345678901230", "" }, /* iban */ - /*271*/ { "[8007]ZWA3BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZWA3BOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum 'A3'" }, /* iban */ - /*272*/ { "[8007]ZW3ABOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW3ABOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum '3A'" }, /* iban */ - /*273*/ { "[8007]ZW33bOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW33bOSL123456789012345678901230", "261: AI (8007) position 5: Invalid IBAN character 'b'" }, /* iban */ - /*274*/ { "[8007]GB98", ZINT_WARN_NONCOMPLIANT, "8007GB98", "259: Invalid data length for AI (8007)" }, /* iban */ - /*275*/ { "[8007]FR7630006000011234567890189", 0, "8007FR7630006000011234567890189", "" }, /* iban */ - /*276*/ { "[8007]DE91100000000123456789", 0, "8007DE91100000000123456789", "" }, /* iban */ - /*277*/ { "[8007]GR9608100010000001234567890", 0, "8007GR9608100010000001234567890", "" }, /* iban */ - /*278*/ { "[8007]MU43BOMM0101123456789101000MUR", 0, "8007MU43BOMM0101123456789101000MUR", "" }, /* iban */ - /*279*/ { "[8007]PL10105000997603123456789123", 0, "8007PL10105000997603123456789123", "" }, /* iban */ - /*280*/ { "[8007]RO09BCYP0000001234567890", 0, "8007RO09BCYP0000001234567890", "" }, /* iban */ - /*281*/ { "[8007]SA4420000001234567891234", 0, "8007SA4420000001234567891234", "" }, /* iban */ - /*282*/ { "[8007]ES7921000813610123456789", 0, "8007ES7921000813610123456789", "" }, /* iban */ - /*283*/ { "[8007]CH5604835012345678009", 0, "8007CH5604835012345678009", "" }, /* iban */ - /*284*/ { "[8007]GB98MIDL07009312345678", 0, "8007GB98MIDL07009312345678", "" }, /* iban */ - /*285*/ { "[8011]1", 0, "80111", "" }, /* nozeroprefix */ - /*286*/ { "[8011]11", 0, "801111", "" }, /* nozeroprefix */ - /*287*/ { "[8011]0", 0, "80110", "" }, /* nozeroprefix */ - /*288*/ { "[8011]01", ZINT_WARN_NONCOMPLIANT, "801101", "261: AI (8011) position 1: Zero prefix is not permitted" }, /* nozeroprefix */ - /*289*/ { "[8110]106141416543213150110120", 0, "8110106141416543213150110120", "" }, /* couponcode (first part of NACAG Appendix C: Example 1 - see test_rss.c test_examples) */ - /*290*/ { "[8110]012345612345610104123", 0, "8110012345612345610104123", "" }, /* couponcode */ - /*291*/ { "[8110]01234561234561010412", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412", "259: Invalid data length for AI (8110)" }, /* couponcode */ - /*292*/ { "[8110]12345678901234567890", ZINT_WARN_NONCOMPLIANT, "811012345678901234567890", "259: Invalid data length for AI (8110)" }, /* couponcode */ - /*293*/ { "[8110]712345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110712345612345610104123", "261: AI (8110) position 1: Invalid Primary GS1 Co. Prefix VLI '7'" }, /* couponcode */ - /*294*/ { "[8110]A12345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110A12345612345610104123", "261: AI (8110) position 1: Non-numeric Primary GS1 Co. Prefix VLI 'A'" }, /* couponcode */ - /*295*/ { "[8110]012345A12345610104123", ZINT_WARN_NONCOMPLIANT, "8110012345A12345610104123", "261: AI (8110) position 7: Non-numeric Primary GS1 Co. Prefix 'A'" }, /* couponcode */ - /*296*/ { "[8110]012345612345A10104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345A10104123", "261: AI (8110) position 8: Non-numeric Offer Code" }, /* couponcode */ - /*297*/ { "[8110]012345612345600104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345600104123", "261: AI (8110) position 14: Invalid Save Value VLI '0'" }, /* couponcode */ - /*298*/ { "[8110]012345612345660104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345660104123", "261: AI (8110) position 14: Invalid Save Value VLI '6'" }, /* couponcode */ - /*299*/ { "[8110]01234561234561A104123", ZINT_WARN_NONCOMPLIANT, "811001234561234561A104123", "261: AI (8110) position 15: Non-numeric Save Value 'A'" }, /* couponcode */ - /*300*/ { "[8110]012345612345610004123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610004123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '0'" }, /* couponcode */ - /*301*/ { "[8110]012345612345610604123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610604123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '6'" }, /* couponcode */ - /*302*/ { "[8110]0123456123456101A4123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101A4123", "261: AI (8110) position 17: Non-numeric Primary Purch. Req. 'A'" }, /* couponcode */ - /*303*/ { "[8110]012345612345621251234", ZINT_WARN_NONCOMPLIANT, "8110012345612345621251234", "261: AI (8110) position 18: Primary Purch. Req. incomplete" }, /* couponcode */ - /*304*/ { "[8110]01234561234561010A123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010A123", "261: AI (8110) position 18: Non-numeric Primary Purch. Req. Code" }, /* couponcode */ - /*305*/ { "[8110]012345612345610106123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610106123", "261: AI (8110) position 18: Invalid Primary Purch. Req. Code '6'" }, /* couponcode */ - /*306*/ { "[8110]012345612345610212412", ZINT_WARN_NONCOMPLIANT, "8110012345612345610212412", "261: AI (8110) position 20: Primary Purch. Family Code incomplete" }, /* couponcode */ - /*307*/ { "[8110]0123456123456103123412", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412", "261: AI (8110) position 21: Primary Purch. Family Code incomplete" }, /* couponcode */ - /*308*/ { "[8110]0123456123456103123412A", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412A", "261: AI (8110) position 21: Non-numeric Primary Purch. Family Code" }, /* couponcode */ - /*309*/ { "[8110]01234561234561031234123", 0, "811001234561234561031234123", "" }, /* couponcode */ - /*310*/ { "[8110]612345678901212345651", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651", "261: AI (8110) position 21: Save Value incomplete" }, /* couponcode */ - /*311*/ { "[8110]6123456789012123456512345", ZINT_WARN_NONCOMPLIANT, "81106123456789012123456512345", "261: AI (8110) position 26: Primary Purch. Req. VLI missing" }, /* couponcode */ - /*312*/ { "[8110]61234567890121234565123455123454123", 0, "811061234567890121234565123455123454123", "" }, /* couponcode */ - /*313*/ { "[8110]61234567890121234565123455123454123A", ZINT_WARN_NONCOMPLIANT, "811061234567890121234565123455123454123A", "261: AI (8110) position 36: Non-numeric Data Field 'A'" }, /* couponcode */ - /*314*/ { "[8110]612345678901212345651234551234541237", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541237", "261: AI (8110) position 36: Invalid Data Field '7'" }, /* couponcode */ - /*315*/ { "[8110]612345678901212345651234551234541238", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541238", "261: AI (8110) position 36: Invalid Data Field '8'" }, /* couponcode */ - /*316*/ { "[8110]0123456123456101041231", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231", "261: AI (8110) position 23: Add. Purch. Rules Code incomplete" }, /* couponcode */ - /*317*/ { "[8110]0123456123456101041231A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231A", "261: AI (8110) position 23: Non-numeric Add. Purch. Rules Code" }, /* couponcode */ - /*318*/ { "[8110]01234561234561010412314", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412314", "261: AI (8110) position 23: Invalid Add. Purch. Rules Code '4'" }, /* couponcode */ - /*319*/ { "[8110]01234561234561010412313", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313", "261: AI (8110) position 24: 2nd Purch. Req. VLI missing" }, /* couponcode */ - /*320*/ { "[8110]01234561234561010412313A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313A", "261: AI (8110) position 24: Non-numeric 2nd Purch. Req. VLI 'A'" }, /* couponcode */ - /*321*/ { "[8110]012345612345610104123130", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123130", "261: AI (8110) position 24: Invalid 2nd Purch. Req. VLI '0'" }, /* couponcode */ - /*322*/ { "[8110]012345612345610104123131", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131", "261: AI (8110) position 25: 2nd Purch. Req. incomplete" }, /* couponcode */ - /*323*/ { "[8110]012345612345610104123131A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131A", "261: AI (8110) position 25: Non-numeric 2nd Purch. Req. 'A'" }, /* couponcode */ - /*324*/ { "[8110]0123456123456101041231310", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310", "261: AI (8110) position 26: 2nd Purch. Req. Code incomplete" }, /* couponcode */ - /*325*/ { "[8110]0123456123456101041231310A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310A", "261: AI (8110) position 26: Non-numeric 2nd Purch. Req. Code" }, /* couponcode */ - /*326*/ { "[8110]01234561234561010412313108", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313108", "261: AI (8110) position 26: Invalid 2nd Purch. Req. Code '8'" }, /* couponcode */ - /*327*/ { "[8110]01234561234561010412313100", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100", "261: AI (8110) position 27: 2nd Purch. Family Code incomplete" }, /* couponcode */ - /*328*/ { "[8110]01234561234561010412313100123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123", "261: AI (8110) position 30: 2nd Purch. GS1 Co. Prefix VLI missing" }, /* couponcode */ - /*329*/ { "[8110]01234561234561010412313100123A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123A", "261: AI (8110) position 30: Non-numeric 2nd Purch. GS1 Co. Prefix VLI 'A'" }, /* couponcode */ - /*330*/ { "[8110]012345612345610104123131001239", 0, "8110012345612345610104123131001239", "" }, /* couponcode */ - /*331*/ { "[8110]01234561234561010412313100123012345", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123012345", "261: AI (8110) position 31: 2nd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ - /*332*/ { "[8110]0123456123456101041231310012311234567", 0, "81100123456123456101041231310012311234567", "" }, /* couponcode */ - /*333*/ { "[8110]0123456123456101041232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232", "261: AI (8110) position 23: 3rd Purch. Req. VLI missing" }, /* couponcode */ - /*334*/ { "[8110]0123456123456101041232A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232A", "261: AI (8110) position 23: Non-numeric 3rd Purch. Req. VLI 'A'" }, /* couponcode */ - /*335*/ { "[8110]01234561234561010412326", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412326", "261: AI (8110) position 23: Invalid 3rd Purch. Req. VLI '6'" }, /* couponcode */ - /*336*/ { "[8110]01234561234561010412321", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321", "261: AI (8110) position 24: 3rd Purch. Req. incomplete" }, /* couponcode */ - /*337*/ { "[8110]012345612345610104123210", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210", "261: AI (8110) position 25: 3rd Purch. Req. Code incomplete" }, /* couponcode */ - /*338*/ { "[8110]0123456123456101041232105", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232105", "261: AI (8110) position 25: Invalid 3rd Purch. Req. Code '5'" }, /* couponcode */ - /*339*/ { "[8110]0123456123456101041232104", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104", "261: AI (8110) position 26: 3rd Purch. Family Code incomplete" }, /* couponcode */ - /*340*/ { "[8110]012345612345610104123210412A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210412A", "261: AI (8110) position 26: Non-numeric 3rd Purch. Family Code" }, /* couponcode */ - /*341*/ { "[8110]0123456123456101041232104123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123", "261: AI (8110) position 29: 3rd Purch. GS1 Co. Prefix VLI missing" }, /* couponcode */ - /*342*/ { "[8110]01234561234561010412321041230", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321041230", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ - /*343*/ { "[8110]0123456123456101041232104123A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123A", "261: AI (8110) position 29: Non-numeric 3rd Purch. GS1 Co. Prefix VLI 'A'" }, /* couponcode */ - /*344*/ { "[8110]0123456123456101041232104123012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ - /*345*/ { "[8110]0123456123456101041232104123012345A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345A", "261: AI (8110) position 35: Non-numeric 3rd Purch. GS1 Co. Prefix 'A'" }, /* couponcode */ - /*346*/ { "[8110]01234561234561010412321041230123456", 0, "811001234561234561010412321041230123456", "" }, /* couponcode */ - /*347*/ { "[8110]0123456123456101041233", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233", "261: AI (8110) position 23: Expiration Date incomplete" }, /* couponcode */ - /*348*/ { "[8110]01234561234561010412332012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412332012", "261: AI (8110) position 23: Expiration Date incomplete" }, /* couponcode */ - /*349*/ { "[8110]012345612345610104123320123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123320123A", "261: AI (8110) position 23: Non-numeric Expiration Date" }, /* couponcode */ - /*350*/ { "[8110]0123456123456101041233201232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233201232", "261: AI (8110) position 27: Invalid day '32'" }, /* couponcode */ - /*351*/ { "[8110]0123456123456101041233200031", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233200031", "261: AI (8110) position 25: Invalid month '00'" }, /* couponcode */ - /*352*/ { "[8110]0123456123456101041233201231", 0, "81100123456123456101041233201231", "" }, /* couponcode */ - /*353*/ { "[8110]0123456123456101041234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234", "261: AI (8110) position 23: Start Date incomplete" }, /* couponcode */ - /*354*/ { "[8110]01234561234561010412342012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412342012", "261: AI (8110) position 23: Start Date incomplete" }, /* couponcode */ - /*355*/ { "[8110]012345612345610104123420123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123420123A", "261: AI (8110) position 23: Non-numeric Start Date" }, /* couponcode */ - /*356*/ { "[8110]0123456123456101041234200230", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234200230", "261: AI (8110) position 27: Invalid day '30'" }, /* couponcode */ - /*357*/ { "[8110]0123456123456101041234201329", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234201329", "261: AI (8110) position 25: Invalid month '13'" }, /* couponcode */ - /*358*/ { "[8110]0123456123456101041234200229", 0, "81100123456123456101041234200229", "" }, /* couponcode */ - /*359*/ { "[8110]0123456123456101041235", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235", "261: AI (8110) position 23: Serial Number VLI missing" }, /* couponcode */ - /*360*/ { "[8110]0123456123456101041235A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235A", "261: AI (8110) position 23: Non-numeric Serial Number VLI 'A'" }, /* couponcode */ - /*361*/ { "[8110]01234561234561010412350", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412350", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ - /*362*/ { "[8110]0123456123456101041235012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235012345", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ - /*363*/ { "[8110]0123456123456101041235912345678901234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ - /*364*/ { "[8110]0123456123456101041235912345678901234A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234A", "261: AI (8110) position 38: Non-numeric Serial Number 'A'" }, /* couponcode */ - /*365*/ { "[8110]01234561234561010412359123456789012345", 0, "811001234561234561010412359123456789012345", "" }, /* couponcode */ - /*366*/ { "[8110]0123456123456101041236", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236", "261: AI (8110) position 23: Retailer ID VLI missing" }, /* couponcode */ - /*367*/ { "[8110]0123456123456101041236A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236A", "261: AI (8110) position 23: Non-numeric Retailer ID VLI 'A'" }, /* couponcode */ - /*368*/ { "[8110]01234561234561010412360", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412360", "261: AI (8110) position 23: Invalid Retailer ID VLI '0'" }, /* couponcode */ - /*369*/ { "[8110]01234561234561010412368", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412368", "261: AI (8110) position 23: Invalid Retailer ID VLI '8'" }, /* couponcode */ - /*370*/ { "[8110]01234561234561010412361", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361", "261: AI (8110) position 24: Retailer ID incomplete" }, /* couponcode */ - /*371*/ { "[8110]01234561234561010412361123456", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456", "261: AI (8110) position 24: Retailer ID incomplete" }, /* couponcode */ - /*372*/ { "[8110]01234561234561010412361123456A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456A", "261: AI (8110) position 30: Non-numeric Retailer ID 'A'" }, /* couponcode */ - /*373*/ { "[8110]012345612345610104123671234567890123", 0, "8110012345612345610104123671234567890123", "" }, /* couponcode */ - /*374*/ { "[8110]0123456123456101041239", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239", "261: AI (8110) position 23: Save Value Code incomplete" }, /* couponcode */ - /*375*/ { "[8110]0123456123456101041239A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239A", "261: AI (8110) position 23: Non-numeric Save Value Code" }, /* couponcode */ - /*376*/ { "[8110]01234561234561010412393", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412393", "261: AI (8110) position 23: Invalid Save Value Code '3'" }, /* couponcode */ - /*377*/ { "[8110]01234561234561010412394", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412394", "261: AI (8110) position 23: Invalid Save Value Code '4'" }, /* couponcode */ - /*378*/ { "[8110]01234561234561010412397", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412397", "261: AI (8110) position 23: Invalid Save Value Code '7'" }, /* couponcode */ - /*379*/ { "[8110]01234561234561010412390", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390", "261: AI (8110) position 24: Save Value Applies To incomplete" }, /* couponcode */ - /*380*/ { "[8110]01234561234561010412390A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390A", "261: AI (8110) position 24: Non-numeric Save Value Applies To" }, /* couponcode */ - /*381*/ { "[8110]012345612345610104123903", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123903", "261: AI (8110) position 24: Invalid Save Value Applies To '3'" }, /* couponcode */ - /*382*/ { "[8110]012345612345610104123902", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902", "261: AI (8110) position 25: Store Coupon Flag incomplete" }, /* couponcode */ - /*383*/ { "[8110]012345612345610104123902A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902A", "261: AI (8110) position 25: Non-numeric Store Coupon Flag" }, /* couponcode */ - /*384*/ { "[8110]0123456123456101041239029", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029", "261: AI (8110) position 26: Don't Multiply Flag incomplete" }, /* couponcode */ - /*385*/ { "[8110]0123456123456101041239029A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029A", "261: AI (8110) position 26: Non-numeric Don't Multiply Flag" }, /* couponcode */ - /*386*/ { "[8110]01234561234561010412390292", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390292", "261: AI (8110) position 26: Invalid Don't Multiply Flag '2'" }, /* couponcode */ - /*387*/ { "[8110]01234561234561010412390291", 0, "811001234561234561010412390291", "" }, /* couponcode */ - /*388*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601522345678961345678990000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (8110)" }, /* couponcode (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112)) */ - /*389*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601", 0, "8110177777776666663100120444101105551888888821109991222222232012314200601", "" }, /* couponcode */ - /*390*/ { "[8112]017777777666666223456789", 0, "8112017777777666666223456789", "" }, /* couponposoffer (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112)) */ - /*391*/ { "[8112]001234561234560123456", 0, "8112001234561234560123456", "" }, /* couponposoffer */ - /*392*/ { "[8112]00123456123456012345", ZINT_WARN_NONCOMPLIANT, "811200123456123456012345", "259: Invalid data length for AI (8112)" }, /* couponposoffer */ - /*393*/ { "[8112]0012345612345601234561", ZINT_WARN_NONCOMPLIANT, "81120012345612345601234561", "261: AI (8112) position 22: Reserved trailing characters" }, /* couponposoffer */ - /*394*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345", "" }, /* couponposoffer */ - /*395*/ { "[8112]0612345678901212345691234567890123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345691234567890123456", "259: Invalid data length for AI (8112)" }, /* couponposoffer */ - /*396*/ { "[8112]06123456789012123456912345678901234A", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234A", "261: AI (8112) position 36: Non-numeric Serial Number 'A'" }, /* couponposoffer */ - /*397*/ { "[8112]06123456789012123456912345678901234", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234", "261: AI (8112) position 22: Serial Number incomplete" }, /* couponposoffer */ - /*398*/ { "[8112]06123456789012123456812345678901234", 0, "811206123456789012123456812345678901234", "" }, /* couponposoffer */ - /*399*/ { "[8112]0612345678901212345681234567890123", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345681234567890123", "261: AI (8112) position 22: Serial Number incomplete" }, /* couponposoffer */ - /*400*/ { "[8112]0612345678901212345A0123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345A0123456", "261: AI (8112) position 15: Non-numeric Offer Code" }, /* couponposoffer */ - /*401*/ { "[8112]0612345678901A1234560123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901A1234560123456", "261: AI (8112) position 14: Non-numeric Coupon Funder ID 'A'" }, /* couponposoffer */ - /*402*/ { "[8112]071234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112071234567890121234560123456", "261: AI (8112) position 2: Invalid Coupon Funder ID VLI '7'" }, /* couponposoffer */ - /*403*/ { "[8112]0A1234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "81120A1234567890121234560123456", "261: AI (8112) position 2: Non-numeric Coupon Funder ID VLI 'A'" }, /* couponposoffer */ - /*404*/ { "[8112]261234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112261234567890121234560123456", "261: AI (8112) position 1: Coupon Format must be 0 or 1" }, /* couponposoffer */ - /*405*/ { "[8112]A61234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112A61234567890121234560123456", "261: AI (8112) position 1: Non-numeric Coupon Format" }, /* couponposoffer */ - /*406*/ { "[4330]023020", 0, "4330023020", "" }, /* hyphen */ - /*407*/ { "[4330]023020-", 0, "4330023020-", "" }, /* hyphen */ - /*408*/ { "[4330]023020+", ZINT_WARN_NONCOMPLIANT, "4330023020+", "261: AI (4330) position 7: Invalid temperature indicator (hyphen only)" }, /* hyphen */ - /*409*/ { "[4330]02302", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ - /*410*/ { "[4330]02302000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ - /*411*/ { "[7252]0", 0, "72520", "" }, /* iso5218 */ - /*412*/ { "[7252]1", 0, "72521", "" }, /* iso5218 */ - /*413*/ { "[7252]2", 0, "72522", "" }, /* iso5218 */ - /*414*/ { "[7252]9", 0, "72529", "" }, /* iso5218 */ - /*415*/ { "[7252]3", ZINT_WARN_NONCOMPLIANT, "72523", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ - /*416*/ { "[7252]5", ZINT_WARN_NONCOMPLIANT, "72525", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ - /*417*/ { "[7252]8", ZINT_WARN_NONCOMPLIANT, "72528", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ - /*418*/ { "[7258]1/2", 0, "72581/2", "" }, /* posinseqslash */ - /*419*/ { "[7258]2/2", 0, "72582/2", "" }, /* posinseqslash */ - /*420*/ { "[7258]1/9", 0, "72581/9", "" }, /* posinseqslash */ - /*421*/ { "[7258]8/9", 0, "72588/9", "" }, /* posinseqslash */ - /*422*/ { "[7258]9/9", 0, "72589/9", "" }, /* posinseqslash */ - /*423*/ { "[7258]0/2", ZINT_WARN_NONCOMPLIANT, "72580/2", "261: AI (7258) position 1: Sequence position cannot be zero" }, /* posinseqslash */ - /*424*/ { "[7258]1/0", ZINT_WARN_NONCOMPLIANT, "72581/0", "261: AI (7258) position 3: Sequence total cannot be zero" }, /* posinseqslash */ - /*425*/ { "[7258]2/1", ZINT_WARN_NONCOMPLIANT, "72582/1", "261: AI (7258) position 1: Sequence position greater than total" }, /* posinseqslash */ - /*426*/ { "[7258]111", ZINT_WARN_NONCOMPLIANT, "7258111", "261: AI (7258) position 1: No sequence separator ('/')" }, /* posinseqslash */ - /*427*/ { "[7258]1//", ZINT_WARN_NONCOMPLIANT, "72581//", "261: AI (7258) position 3: Single sequence separator ('/') only" }, /* posinseqslash */ - /*428*/ { "[7258]/11", ZINT_WARN_NONCOMPLIANT, "7258/11", "261: AI (7258) position 1: Sequence separator '/' cannot start or end" }, /* posinseqslash */ - /*429*/ { "[7258]11/", ZINT_WARN_NONCOMPLIANT, "725811/", "261: AI (7258) position 3: Sequence separator '/' cannot start or end" }, /* posinseqslash */ - /*430*/ { "[7258]1+1", ZINT_WARN_NONCOMPLIANT, "72581+1", "261: AI (7258) position 2: Invalid character '+' in sequence" }, /* posinseqslash */ - /*431*/ { "[7258]1/A", ZINT_WARN_NONCOMPLIANT, "72581/A", "261: AI (7258) position 3: Invalid character 'A' in sequence" }, /* posinseqslash */ - /*432*/ { "[8014]990000A35", 0, "8014990000A35", "" }, /* hasnondigit */ - /*433*/ { "[8014]990000025", ZINT_WARN_NONCOMPLIANT, "8014990000025", "261: AI (8014) position 1: A non-digit character is required" }, /* hasnondigit */ - /*434*/ { "[7041]8", 0, "70418", "" }, /* packagetype */ - /*435*/ { "[7041]9", 0, "70419", "" }, /* packagetype */ - /*436*/ { "[7041]9[00]123456789012345675", 0, "70419\03500123456789012345675", "" }, /* packagetype */ - /*437*/ { "[7041]20", ZINT_WARN_NONCOMPLIANT, "704120", "261: AI (7041) position 1: Invalid package type '20'" }, /* packagetype */ - /*438*/ { "[7041]20[00]123456789012345675", ZINT_WARN_NONCOMPLIANT, "704120\03500123456789012345675", "261: AI (7041) position 1: Invalid package type '20'" }, /* packagetype */ - /*439*/ { "[7041]200", 0, "7041200", "" }, /* packagetype */ - /*440*/ { "[7041]200[00]123456789012345675", 0, "7041200\03500123456789012345675", "" }, /* packagetype */ - /*441*/ { "[7041]2000", ZINT_WARN_NONCOMPLIANT, "70412000", "261: AI (7041) position 1: Invalid package type '2000'" }, /* packagetype */ - /*442*/ { "[7041]200_", ZINT_WARN_NONCOMPLIANT, "7041200_", "261: AI (7041) position 1: Invalid package type '200_'" }, /* packagetype */ - /*443*/ { "[7041]_", ZINT_WARN_NONCOMPLIANT, "7041_", "261: AI (7041) position 1: Invalid package type '_'" }, /* packagetype */ - /*444*/ { "[7041]_9", ZINT_WARN_NONCOMPLIANT, "7041_9", "261: AI (7041) position 1: Invalid package type '_9'" }, /* packagetype */ - /*445*/ { "[7041]9_", ZINT_WARN_NONCOMPLIANT, "70419_", "261: AI (7041) position 1: Invalid package type '9_'" }, /* packagetype */ - /*446*/ { "[7041]/", ZINT_WARN_NONCOMPLIANT, "7041/", "261: AI (7041) position 1: Invalid package type '/'" }, /* packagetype */ - /*447*/ { "[7041]/9", ZINT_WARN_NONCOMPLIANT, "7041/9", "261: AI (7041) position 1: Invalid package type '/9'" }, /* packagetype */ - /*448*/ { "[7041]9/", ZINT_WARN_NONCOMPLIANT, "70419/", "261: AI (7041) position 1: Invalid package type '9/'" }, /* packagetype */ - /*449*/ { "[7041]0", ZINT_WARN_NONCOMPLIANT, "70410", "261: AI (7041) position 1: Invalid package type '0'" }, /* packagetype */ - /*450*/ { "[7041]00", ZINT_WARN_NONCOMPLIANT, "704100", "261: AI (7041) position 1: Invalid package type '00'" }, /* packagetype */ - /*451*/ { "[7041]000", ZINT_WARN_NONCOMPLIANT, "7041000", "261: AI (7041) position 1: Invalid package type '000'" }, /* packagetype */ - /*452*/ { "[7041]0000", ZINT_WARN_NONCOMPLIANT, "70410000", "261: AI (7041) position 1: Invalid package type '0000'" }, /* packagetype */ - /*453*/ { "[7041]1", ZINT_WARN_NONCOMPLIANT, "70411", "261: AI (7041) position 1: Invalid package type '1'" }, /* packagetype */ - /*454*/ { "[7041]//", ZINT_WARN_NONCOMPLIANT, "7041//", "261: AI (7041) position 1: Invalid package type '//'" }, /* packagetype */ - /*455*/ { "[7041]11", ZINT_WARN_NONCOMPLIANT, "704111", "261: AI (7041) position 1: Invalid package type '11'" }, /* packagetype */ - /*456*/ { "[7041]1A", 0, "70411A", "" }, /* packagetype */ - /*457*/ { "[7041]1A1", ZINT_WARN_NONCOMPLIANT, "70411A1", "261: AI (7041) position 1: Invalid package type '1A1'" }, /* packagetype */ - /*458*/ { "[7041]1_A1", ZINT_WARN_NONCOMPLIANT, "70411_A1", "261: AI (7041) position 1: Invalid package type '1_A1'" }, /* packagetype */ - /*459*/ { "[7041]1A1_", ZINT_WARN_NONCOMPLIANT, "70411A1_", "261: AI (7041) position 1: Invalid package type '1A1_'" }, /* packagetype */ - /*460*/ { "[7041]1B", 0, "70411B", "" }, /* packagetype */ - /*461*/ { "[7041]1W", 0, "70411W", "" }, /* packagetype */ - /*462*/ { "[7041]1X", ZINT_WARN_NONCOMPLIANT, "70411X", "261: AI (7041) position 1: Invalid package type '1X'" }, /* packagetype */ - /*463*/ { "[7041]2A", ZINT_WARN_NONCOMPLIANT, "70412A", "261: AI (7041) position 1: Invalid package type '2A'" }, /* packagetype */ - /*464*/ { "[7041]2B", ZINT_WARN_NONCOMPLIANT, "70412B", "261: AI (7041) position 1: Invalid package type '2B'" }, /* packagetype */ - /*465*/ { "[7041]2C", 0, "70412C", "" }, /* packagetype */ - /*466*/ { "[7041]2D", ZINT_WARN_NONCOMPLIANT, "70412D", "261: AI (7041) position 1: Invalid package type '2D'" }, /* packagetype */ - /*467*/ { "[7041]3A", 0, "70413A", "" }, /* packagetype */ - /*468*/ { "[7041]3H", 0, "70413H", "" }, /* packagetype */ - /*469*/ { "[7041]42", ZINT_WARN_NONCOMPLIANT, "704142", "261: AI (7041) position 1: Invalid package type '42'" }, /* packagetype */ - /*470*/ { "[7041]43", 0, "704143", "" }, /* packagetype */ - /*471*/ { "[7041]44", 0, "704144", "" }, /* packagetype */ - /*472*/ { "[7041]45", ZINT_WARN_NONCOMPLIANT, "704145", "261: AI (7041) position 1: Invalid package type '45'" }, /* packagetype */ - /*473*/ { "[7041]4A", 0, "70414A", "" }, /* packagetype */ - /*474*/ { "[7041]4H", 0, "70414H", "" }, /* packagetype */ - /*475*/ { "[7041]4I", ZINT_WARN_NONCOMPLIANT, "70414I", "261: AI (7041) position 1: Invalid package type '4I'" }, /* packagetype */ - /*476*/ { "[7041]5H", 0, "70415H", "" }, /* packagetype */ - /*477*/ { "[7041]5K", ZINT_WARN_NONCOMPLIANT, "70415K", "261: AI (7041) position 1: Invalid package type '5K'" }, /* packagetype */ - /*478*/ { "[7041]5M", 0, "70415M", "" }, /* packagetype */ - /*479*/ { "[7041]6H", 0, "70416H", "" }, /* packagetype */ - /*480*/ { "[7041]6I", ZINT_WARN_NONCOMPLIANT, "70416I", "261: AI (7041) position 1: Invalid package type '6I'" }, /* packagetype */ - /*481*/ { "[7041]7B", 0, "70417B", "" }, /* packagetype */ - /*482*/ { "[7041]7C", ZINT_WARN_NONCOMPLIANT, "70417C", "261: AI (7041) position 1: Invalid package type '7C'" }, /* packagetype */ - /*483*/ { "[7041]81", ZINT_WARN_NONCOMPLIANT, "704181", "261: AI (7041) position 1: Invalid package type '81'" }, /* packagetype */ - /*484*/ { "[7041]8A", 0, "70418A", "" }, /* packagetype */ - /*485*/ { "[7041]8C", 0, "70418C", "" }, /* packagetype */ - /*486*/ { "[7041]90", ZINT_WARN_NONCOMPLIANT, "704190", "261: AI (7041) position 1: Invalid package type '90'" }, /* packagetype */ - /*487*/ { "[7041]AA", 0, "7041AA", "" }, /* packagetype */ - /*488*/ { "[7041]AB", 0, "7041AB", "" }, /* packagetype */ - /*489*/ { "[7041]AJ", 0, "7041AJ", "" }, /* packagetype */ - /*490*/ { "[7041]AK", ZINT_WARN_NONCOMPLIANT, "7041AK", "261: AI (7041) position 1: Invalid package type 'AK'" }, /* packagetype */ - /*491*/ { "[7041]AM", 0, "7041AM", "" }, /* packagetype */ - /*492*/ { "[7041]AP", 0, "7041AP", "" }, /* packagetype */ - /*493*/ { "[7041]AV", 0, "7041AV", "" }, /* packagetype */ - /*494*/ { "[7041]B3", ZINT_WARN_NONCOMPLIANT, "7041B3", "261: AI (7041) position 1: Invalid package type 'B3'" }, /* packagetype */ - /*495*/ { "[7041]B4", 0, "7041B4", "" }, /* packagetype */ - /*496*/ { "[7041]BA", ZINT_WARN_NONCOMPLIANT, "7041BA", "261: AI (7041) position 1: Invalid package type 'BA'" }, /* packagetype */ - /*497*/ { "[7041]BB", 0, "7041BB", "" }, /* packagetype */ - /*498*/ { "[7041]BG", 0, "7041BG", "" }, /* packagetype */ - /*499*/ { "[7041]BM", 0, "7041BM", "" }, /* packagetype */ - /*500*/ { "[7041]BN", 0, "7041BN", "" }, /* packagetype */ - /*501*/ { "[7041]BR", 0, "7041BR", "" }, /* packagetype */ - /*502*/ { "[7041]BZ", 0, "7041BZ", "" }, /* packagetype */ - /*503*/ { "[7041]C?", ZINT_WARN_NONCOMPLIANT, "7041C?", "261: AI (7041) position 1: Invalid package type 'C?'" }, /* packagetype */ - /*504*/ { "[7041]CA", 0, "7041CA", "" }, /* packagetype */ - /*505*/ { "[7041]CB", 0, "7041CB", "" }, /* packagetype */ - /*506*/ { "[7041]CC", 0, "7041CC", "" }, /* packagetype */ - /*507*/ { "[7041]DA", 0, "7041DA", "" }, /* packagetype */ - /*508*/ { "[7041]DD", ZINT_WARN_NONCOMPLIANT, "7041DD", "261: AI (7041) position 1: Invalid package type 'DD'" }, /* packagetype */ - /*509*/ { "[7041]DF", ZINT_WARN_NONCOMPLIANT, "7041DF", "261: AI (7041) position 1: Invalid package type 'DF'" }, /* packagetype */ - /*510*/ { "[7041]DG", 0, "7041DG", "" }, /* packagetype */ - /*511*/ { "[7041]DP", 0, "7041DP", "" }, /* packagetype */ - /*512*/ { "[7041]DQ", ZINT_WARN_NONCOMPLIANT, "7041DQ", "261: AI (7041) position 1: Invalid package type 'DQ'" }, /* packagetype */ - /*513*/ { "[7041]E0", ZINT_WARN_NONCOMPLIANT, "7041E0", "261: AI (7041) position 1: Invalid package type 'E0'" }, /* packagetype */ - /*514*/ { "[7041]E1", 0, "7041E1", "" }, /* packagetype */ - /*515*/ { "[7041]E3", 0, "7041E3", "" }, /* packagetype */ - /*516*/ { "[7041]EB", ZINT_WARN_NONCOMPLIANT, "7041EB", "261: AI (7041) position 1: Invalid package type 'EB'" }, /* packagetype */ - /*517*/ { "[7041]EC", 0, "7041EC", "" }, /* packagetype */ - /*518*/ { "[7041]FA", ZINT_WARN_NONCOMPLIANT, "7041FA", "261: AI (7041) position 1: Invalid package type 'FA'" }, /* packagetype */ - /*519*/ { "[7041]FO", 0, "7041FO", "" }, /* packagetype */ - /*520*/ { "[7041]FP", 0, "7041FP", "" }, /* packagetype */ - /*521*/ { "[7041]GA", ZINT_WARN_NONCOMPLIANT, "7041GA", "261: AI (7041) position 1: Invalid package type 'GA'" }, /* packagetype */ - /*522*/ { "[7041]GB", 0, "7041GB", "" }, /* packagetype */ - /*523*/ { "[7041]HR", 0, "7041HR", "" }, /* packagetype */ - /*524*/ { "[7041]HT", ZINT_WARN_NONCOMPLIANT, "7041HT", "261: AI (7041) position 1: Invalid package type 'HT'" }, /* packagetype */ - /*525*/ { "[7041]IJ", ZINT_WARN_NONCOMPLIANT, "7041IJ", "261: AI (7041) position 1: Invalid package type 'IJ'" }, /* packagetype */ - /*526*/ { "[7041]IL", 0, "7041IL", "" }, /* packagetype */ - /*527*/ { "[7041]IZ", 0, "7041IZ", "" }, /* packagetype */ - /*528*/ { "[7041]JB", 0, "7041JB", "" }, /* packagetype */ - /*529*/ { "[7041]JD", ZINT_WARN_NONCOMPLIANT, "7041JD", "261: AI (7041) position 1: Invalid package type 'JD'" }, /* packagetype */ - /*530*/ { "[7041]KG", 0, "7041KG", "" }, /* packagetype */ - /*531*/ { "[7041]KH", ZINT_WARN_NONCOMPLIANT, "7041KH", "261: AI (7041) position 1: Invalid package type 'KH'" }, /* packagetype */ - /*532*/ { "[7041]LA", ZINT_WARN_NONCOMPLIANT, "7041LA", "261: AI (7041) position 1: Invalid package type 'LA'" }, /* packagetype */ - /*533*/ { "[7041]LE", 0, "7041LE", "" }, /* packagetype */ - /*534*/ { "[7041]ME", 0, "7041ME", "" }, /* packagetype */ - /*535*/ { "[7041]MP", ZINT_WARN_NONCOMPLIANT, "7041MP", "261: AI (7041) position 1: Invalid package type 'MP'" }, /* packagetype */ - /*536*/ { "[7041]NA", 0, "7041NA", "" }, /* packagetype */ - /*537*/ { "[7041]NB", ZINT_WARN_NONCOMPLIANT, "7041NB", "261: AI (7041) position 1: Invalid package type 'NB'" }, /* packagetype */ - /*538*/ { "[7041]OK", 0, "7041OK", "" }, /* packagetype */ - /*539*/ { "[7041]OP", ZINT_WARN_NONCOMPLIANT, "7041OP", "261: AI (7041) position 1: Invalid package type 'OP'" }, /* packagetype */ - /*540*/ { "[7041]P1", ZINT_WARN_NONCOMPLIANT, "7041P1", "261: AI (7041) position 1: Invalid package type 'P1'" }, /* packagetype */ - /*541*/ { "[7041]P2", 0, "7041P2", "" }, /* packagetype */ - /*542*/ { "[7041]P3", ZINT_WARN_NONCOMPLIANT, "7041P3", "261: AI (7041) position 1: Invalid package type 'P3'" }, /* packagetype */ - /*543*/ { "[7041]PA", 0, "7041PA", "" }, /* packagetype */ - /*544*/ { "[7041]PL", 0, "7041PL", "" }, /* packagetype */ - /*545*/ { "[7041]PO", 0, "7041PO", "" }, /* packagetype */ - /*546*/ { "[7041]PQ", ZINT_WARN_NONCOMPLIANT, "7041PQ", "261: AI (7041) position 1: Invalid package type 'PQ'" }, /* packagetype */ - /*547*/ { "[7041]PP", 0, "7041PP", "" }, /* packagetype */ - /*548*/ { "[7041]PU", 0, "7041PU", "" }, /* packagetype */ - /*549*/ { "[7041]QO", ZINT_WARN_NONCOMPLIANT, "7041QO", "261: AI (7041) position 1: Invalid package type 'QO'" }, /* packagetype */ - /*550*/ { "[7041]QS", 0, "7041QS", "" }, /* packagetype */ - /*551*/ { "[7041]RB", ZINT_WARN_NONCOMPLIANT, "7041RB", "261: AI (7041) position 1: Invalid package type 'RB'" }, /* packagetype */ - /*552*/ { "[7041]RC", ZINT_WARN_NONCOMPLIANT, "7041RC", "261: AI (7041) position 1: Invalid package type 'RC'" }, /* packagetype */ - /*553*/ { "[7041]RD", 0, "7041RD", "" }, /* packagetype */ - /*554*/ { "[7041]S1", 0, "7041S1", "" }, /* packagetype */ - /*555*/ { "[7041]S2", ZINT_WARN_NONCOMPLIANT, "7041S2", "261: AI (7041) position 1: Invalid package type 'S2'" }, /* packagetype */ - /*556*/ { "[7041]SE", 0, "7041SE", "" }, /* packagetype */ - /*557*/ { "[7041]ST", 0, "7041ST", "" }, /* packagetype */ - /*558*/ { "[7041]T0", ZINT_WARN_NONCOMPLIANT, "7041T0", "261: AI (7041) position 1: Invalid package type 'T0'" }, /* packagetype */ - /*559*/ { "[7041]T1", 0, "7041T1", "" }, /* packagetype */ - /*560*/ { "[7041]TE", 0, "7041TE", "" }, /* packagetype */ - /*561*/ { "[7041]TR", 0, "7041TR", "" }, /* packagetype */ - /*562*/ { "[7041]TT", 0, "7041TT", "" }, /* packagetype */ - /*563*/ { "[7041]TW", 0, "7041TW", "" }, /* packagetype */ - /*564*/ { "[7041]UA", ZINT_WARN_NONCOMPLIANT, "7041UA", "261: AI (7041) position 1: Invalid package type 'UA'" }, /* packagetype */ - /*565*/ { "[7041]UN", 0, "7041UN", "" }, /* packagetype */ - /*566*/ { "[7041]UU", ZINT_WARN_NONCOMPLIANT, "7041UU", "261: AI (7041) position 1: Invalid package type 'UU'" }, /* packagetype */ - /*567*/ { "[7041]VK", 0, "7041VK", "" }, /* packagetype */ - /*568*/ { "[7041]WA", 0, "7041WA", "" }, /* packagetype */ - /*569*/ { "[7041]WI", ZINT_WARN_NONCOMPLIANT, "7041WI", "261: AI (7041) position 1: Invalid package type 'WI'" }, /* packagetype */ - /*570*/ { "[7041]WR", 0, "7041WR", "" }, /* packagetype */ - /*571*/ { "[7041]X1", ZINT_WARN_NONCOMPLIANT, "7041X1", "261: AI (7041) position 1: Invalid package type 'X1'" }, /* packagetype */ - /*572*/ { "[7041]X2", ZINT_WARN_NONCOMPLIANT, "7041X2", "261: AI (7041) position 1: Invalid package type 'X2'" }, /* packagetype */ - /*573*/ { "[7041]X3", 0, "7041X3", "" }, /* packagetype */ - /*574*/ { "[7041]XA", 0, "7041XA", "" }, /* packagetype */ - /*575*/ { "[7041]XL", ZINT_WARN_NONCOMPLIANT, "7041XL", "261: AI (7041) position 1: Invalid package type 'XL'" }, /* packagetype */ - /*576*/ { "[7041]YA", 0, "7041YA", "" }, /* packagetype */ - /*577*/ { "[7041]YE", ZINT_WARN_NONCOMPLIANT, "7041YE", "261: AI (7041) position 1: Invalid package type 'YE'" }, /* packagetype */ - /*578*/ { "[7041]YZ", 0, "7041YZ", "" }, /* packagetype */ - /*579*/ { "[7041]ZA", 0, "7041ZA", "" }, /* packagetype */ - /*580*/ { "[7041]ZE", ZINT_WARN_NONCOMPLIANT, "7041ZE", "261: AI (7041) position 1: Invalid package type 'ZE'" }, /* packagetype */ - /*581*/ { "[7041]ZY", 0, "7041ZY", "" }, /* packagetype */ - /*582*/ { "[7041]ZZ", 0, "7041ZZ", "" }, /* packagetype */ - /*583*/ { "[7041]Z_", ZINT_WARN_NONCOMPLIANT, "7041Z_", "261: AI (7041) position 1: Invalid package type 'Z_'" }, /* packagetype */ - /*584*/ { "[7041]__", ZINT_WARN_NONCOMPLIANT, "7041__", "261: AI (7041) position 1: Invalid package type '__'" }, /* packagetype */ - /*585*/ { "[7041]///", ZINT_WARN_NONCOMPLIANT, "7041///", "261: AI (7041) position 1: Invalid package type '///'" }, /* packagetype */ - /*586*/ { "[7041]100", ZINT_WARN_NONCOMPLIANT, "7041100", "261: AI (7041) position 1: Invalid package type '100'" }, /* packagetype */ - /*587*/ { "[7041]201", 0, "7041201", "" }, /* packagetype */ - /*588*/ { "[7041]202", 0, "7041202", "" }, /* packagetype */ - /*589*/ { "[7041]206", 0, "7041206", "" }, /* packagetype */ - /*590*/ { "[7041]207", ZINT_WARN_NONCOMPLIANT, "7041207", "261: AI (7041) position 1: Invalid package type '207'" }, /* packagetype */ - /*591*/ { "[7041]210", 0, "7041210", "" }, /* packagetype */ - /*592*/ { "[7041]212", 0, "7041212", "" }, /* packagetype */ - /*593*/ { "[7041]800", ZINT_WARN_NONCOMPLIANT, "7041800", "261: AI (7041) position 1: Invalid package type '800'" }, /* packagetype */ - /*594*/ { "[7041]900", ZINT_WARN_NONCOMPLIANT, "7041900", "261: AI (7041) position 1: Invalid package type '900'" }, /* packagetype */ - /*595*/ { "[7041]AAE", ZINT_WARN_NONCOMPLIANT, "7041AAE", "261: AI (7041) position 1: Invalid package type 'AAE'" }, /* packagetype */ - /*596*/ { "[7041]APE", 0, "7041APE", "" }, /* packagetype */ - /*597*/ { "[7041]APF", ZINT_WARN_NONCOMPLIANT, "7041APF", "261: AI (7041) position 1: Invalid package type 'APF'" }, /* packagetype */ - /*598*/ { "[7041]BBC", ZINT_WARN_NONCOMPLIANT, "7041BBC", "261: AI (7041) position 1: Invalid package type 'BBC'" }, /* packagetype */ - /*599*/ { "[7041]BGE", 0, "7041BGE", "" }, /* packagetype */ - /*600*/ { "[7041]BME", 0, "7041BME", "" }, /* packagetype */ - /*601*/ { "[7041]BRI", 0, "7041BRI", "" }, /* packagetype */ - /*602*/ { "[7041]BSI", ZINT_WARN_NONCOMPLIANT, "7041BSI", "261: AI (7041) position 1: Invalid package type 'BSI'" }, /* packagetype */ - /*603*/ { "[7041]CAL", ZINT_WARN_NONCOMPLIANT, "7041CAL", "261: AI (7041) position 1: Invalid package type 'CAL'" }, /* packagetype */ - /*604*/ { "[7041]CBL", 0, "7041CBL", "" }, /* packagetype */ - /*605*/ { "[7041]CCE", 0, "7041CCE", "" }, /* packagetype */ - /*606*/ { "[7041]DPE", 0, "7041DPE", "" }, /* packagetype */ - /*607*/ { "[7041]DPF", ZINT_WARN_NONCOMPLIANT, "7041DPF", "261: AI (7041) position 1: Invalid package type 'DPF'" }, /* packagetype */ - /*608*/ { "[7041]EPE", ZINT_WARN_NONCOMPLIANT, "7041EPE", "261: AI (7041) position 1: Invalid package type 'EPE'" }, /* packagetype */ - /*609*/ { "[7041]FOB", 0, "7041FOB", "" }, /* packagetype */ - /*610*/ { "[7041]FOC", ZINT_WARN_NONCOMPLIANT, "7041FOC", "261: AI (7041) position 1: Invalid package type 'FOC'" }, /* packagetype */ - /*611*/ { "[7041]FPE", 0, "7041FPE", "" }, /* packagetype */ - /*612*/ { "[7041]GPE", ZINT_WARN_NONCOMPLIANT, "7041GPE", "261: AI (7041) position 1: Invalid package type 'GPE'" }, /* packagetype */ - /*613*/ { "[7041]HPE", ZINT_WARN_NONCOMPLIANT, "7041HPE", "261: AI (7041) position 1: Invalid package type 'HPE'" }, /* packagetype */ - /*614*/ { "[7041]IPE", ZINT_WARN_NONCOMPLIANT, "7041IPE", "261: AI (7041) position 1: Invalid package type 'IPE'" }, /* packagetype */ - /*615*/ { "[7041]JAB", ZINT_WARN_NONCOMPLIANT, "7041JAB", "261: AI (7041) position 1: Invalid package type 'JAB'" }, /* packagetype */ - /*616*/ { "[7041]KAB", ZINT_WARN_NONCOMPLIANT, "7041KAB", "261: AI (7041) position 1: Invalid package type 'KAB'" }, /* packagetype */ - /*617*/ { "[7041]LAA", ZINT_WARN_NONCOMPLIANT, "7041LAA", "261: AI (7041) position 1: Invalid package type 'LAA'" }, /* packagetype */ - /*618*/ { "[7041]LAB", 0, "7041LAB", "" }, /* packagetype */ - /*619*/ { "[7041]MPE", 0, "7041MPE", "" }, /* packagetype */ - /*620*/ { "[7041]MPF", ZINT_WARN_NONCOMPLIANT, "7041MPF", "261: AI (7041) position 1: Invalid package type 'MPF'" }, /* packagetype */ - /*621*/ { "[7041]OPE", 0, "7041OPE", "" }, /* packagetype */ - /*622*/ { "[7041]QAE", ZINT_WARN_NONCOMPLIANT, "7041QAE", "261: AI (7041) position 1: Invalid package type 'QAE'" }, /* packagetype */ - /*623*/ { "[7041]PAD", ZINT_WARN_NONCOMPLIANT, "7041PAD", "261: AI (7041) position 1: Invalid package type 'PAD'" }, /* packagetype */ - /*624*/ { "[7041]PAE", 0, "7041PAE", "" }, /* packagetype */ - /*625*/ { "[7041]PLP", 0, "7041PLP", "" }, /* packagetype */ - /*626*/ { "[7041]POP", 0, "7041POP", "" }, /* packagetype */ - /*627*/ { "[7041]PPE", 0, "7041PPE", "" }, /* packagetype */ - /*628*/ { "[7041]PUE", 0, "7041PUE", "" }, /* packagetype */ - /*629*/ { "[7041]QUE", ZINT_WARN_NONCOMPLIANT, "7041QUE", "261: AI (7041) position 1: Invalid package type 'QUE'" }, /* packagetype */ - /*630*/ { "[7041]RB0", ZINT_WARN_NONCOMPLIANT, "7041RB0", "261: AI (7041) position 1: Invalid package type 'RB0'" }, /* packagetype */ - /*631*/ { "[7041]RB1", 0, "7041RB1", "" }, /* packagetype */ - /*632*/ { "[7041]RB3", 0, "7041RB3", "" }, /* packagetype */ - /*633*/ { "[7041]RB4", ZINT_WARN_NONCOMPLIANT, "7041RB4", "261: AI (7041) position 1: Invalid package type 'RB4'" }, /* packagetype */ - /*634*/ { "[7041]RBA", ZINT_WARN_NONCOMPLIANT, "7041RBA", "261: AI (7041) position 1: Invalid package type 'RBA'" }, /* packagetype */ - /*635*/ { "[7041]RCB", 0, "7041RCB", "" }, /* packagetype */ - /*636*/ { "[7041]SEC", 0, "7041SEC", "" }, /* packagetype */ - /*637*/ { "[7041]STL", 0, "7041STL", "" }, /* packagetype */ - /*638*/ { "[7041]STM", ZINT_WARN_NONCOMPLIANT, "7041STM", "261: AI (7041) position 1: Invalid package type 'STM'" }, /* packagetype */ - /*639*/ { "[7041]TEV", 0, "7041TEV", "" }, /* packagetype */ - /*640*/ { "[7041]TTE", 0, "7041TTE", "" }, /* packagetype */ - /*641*/ { "[7041]TTF", ZINT_WARN_NONCOMPLIANT, "7041TTF", "261: AI (7041) position 1: Invalid package type 'TTF'" }, /* packagetype */ - /*642*/ { "[7041]TWE", 0, "7041TWE", "" }, /* packagetype */ - /*643*/ { "[7041]X10", ZINT_WARN_NONCOMPLIANT, "7041X10", "261: AI (7041) position 1: Invalid package type 'X10'" }, /* packagetype */ - /*644*/ { "[7041]X11", 0, "7041X11", "" }, /* packagetype */ - /*645*/ { "[7041]X13", ZINT_WARN_NONCOMPLIANT, "7041X13", "261: AI (7041) position 1: Invalid package type 'X13'" }, /* packagetype */ - /*646*/ { "[7041]X14", ZINT_WARN_NONCOMPLIANT, "7041X14", "261: AI (7041) position 1: Invalid package type 'X14'" }, /* packagetype */ - /*647*/ { "[7041]X15", 0, "7041X15", "" }, /* packagetype */ - /*648*/ { "[7041]X19", 0, "7041X19", "" }, /* packagetype */ - /*649*/ { "[7041]X20", 0, "7041X20", "" }, /* packagetype */ - /*650*/ { "[7041]X21", ZINT_WARN_NONCOMPLIANT, "7041X21", "261: AI (7041) position 1: Invalid package type 'X21'" }, /* packagetype */ - /*651*/ { "[7041]___", ZINT_WARN_NONCOMPLIANT, "7041___", "261: AI (7041) position 1: Invalid package type '___'" }, /* packagetype */ + /*193*/ { "[7030]998A", ZINT_WARN_NONCOMPLIANT, "7030998A", "261: AI (7030) position 1: Unknown country code '998'" }, /* iso3166999 */ + /*194*/ { "[4307]AD", 0, "4307AD", "" }, /* iso3166alpha2 */ + /*195*/ { "[4307]AC", ZINT_WARN_NONCOMPLIANT, "4307AC", "261: AI (4307) position 1: Unknown country code 'AC'" }, /* iso3166alpha2 */ + /*196*/ { "[3910]0081", 0, "39100081", "" }, /* iso4217 */ + /*197*/ { "[3910]9991", 0, "39109991", "" }, /* iso4217 */ + /*198*/ { "[3910]9971", 0, "39109971", "" }, /* iso4217 */ + /*199*/ { "[3910]9251", 0, "39109251", "" }, /* iso4217 */ + /*200*/ { "[3910]01", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, /* iso4217 */ + /*201*/ { "[3910]001", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (3910)" }, /* iso4217 */ + /*202*/ { "[3910]9981", ZINT_WARN_NONCOMPLIANT, "39109981", "261: AI (3910) position 1: Unknown currency code '998'" }, /* iso4217 */ + /*203*/ { "[3910]0041", ZINT_WARN_NONCOMPLIANT, "39100041", "261: AI (3910) position 1: Unknown currency code '004'" }, /* iso4217 */ + /*204*/ { "[3910]8941", ZINT_WARN_NONCOMPLIANT, "39108941", "261: AI (3910) position 1: Unknown currency code '894'" }, /* iso4217 */ + /*205*/ { "[4300]%12", 0, "4300%12", "" }, /* pcenc */ + /*206*/ { "[4300]%1", ZINT_WARN_NONCOMPLIANT, "4300%1", "261: AI (4300) position 1: Invalid % escape" }, /* pcenc */ + /*207*/ { "[4300]%", ZINT_WARN_NONCOMPLIANT, "4300%", "261: AI (4300) position 1: Invalid % escape" }, /* pcenc */ + /*208*/ { "[4300]12%1212", 0, "430012%1212", "" }, /* pcenc */ + /*209*/ { "[4300]12%1G12", ZINT_WARN_NONCOMPLIANT, "430012%1G12", "261: AI (4300) position 5: Invalid character for percent encoding" }, /* pcenc */ + /*210*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", 0, "4308ABCDEFGHIJKLMNOPQRSTUVWXYZ%+12", "" }, /* no pcenc */ + /*211*/ { "[4308]ABCDEFGHIJKLMNOPQRSTUVWXYZ%+123", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4308)" }, /* no pcenc */ + /*212*/ { "[4309]02790858483015297971", 0, "430902790858483015297971", "" }, /* latlong */ + /*213*/ { "[4309]18000000013015297971", ZINT_WARN_NONCOMPLIANT, "430918000000013015297971", "261: AI (4309) position 10: Invalid latitude" }, /* latlong */ + /*214*/ { "[4309]02790858413600000001", ZINT_WARN_NONCOMPLIANT, "430902790858413600000001", "261: AI (4309) position 20: Invalid longitude" }, /* latlong */ + /*215*/ { "[4321]1", 0, "43211", "" }, /* yesno */ + /*216*/ { "[4321]0", 0, "43210", "" }, /* yesno */ + /*217*/ { "[4321]2", ZINT_WARN_NONCOMPLIANT, "43212", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, /* yesno */ + /*218*/ { "[4321]9", ZINT_WARN_NONCOMPLIANT, "43219", "261: AI (4321) position 1: Neither 0 nor 1 for yes or no" }, /* yesno */ + /*219*/ { "[7040]1234", 0, "70401234", "" }, /* importeridx */ + /*220*/ { "[7040]123A", 0, "7040123A", "" }, /* importeridx */ + /*221*/ { "[7040]123Z", 0, "7040123Z", "" }, /* importeridx */ + /*222*/ { "[7040]123a", 0, "7040123a", "" }, /* importeridx */ + /*223*/ { "[7040]123z", 0, "7040123z", "" }, /* importeridx */ + /*224*/ { "[7040]123-", 0, "7040123-", "" }, /* importeridx */ + /*225*/ { "[7040]123_", 0, "7040123_", "" }, /* importeridx */ + /*226*/ { "[7040]123!", ZINT_WARN_NONCOMPLIANT, "7040123!", "261: AI (7040) position 4: Invalid importer index '!'" }, /* importeridx */ + /*227*/ { "[7040]123/", ZINT_WARN_NONCOMPLIANT, "7040123/", "261: AI (7040) position 4: Invalid importer index '/'" }, /* importeridx */ + /*228*/ { "[7040]123:", ZINT_WARN_NONCOMPLIANT, "7040123:", "261: AI (7040) position 4: Invalid importer index ':'" }, /* importeridx */ + /*229*/ { "[7040]123?", ZINT_WARN_NONCOMPLIANT, "7040123?", "261: AI (7040) position 4: Invalid importer index '?'" }, /* importeridx */ + /*230*/ { "[7241]01", 0, "724101", "" }, /* mediatype */ + /*231*/ { "[7241]10", 0, "724110", "" }, /* mediatype */ + /*232*/ { "[7241]80", 0, "724180", "" }, /* mediatype */ + /*233*/ { "[7241]99", 0, "724199", "" }, /* mediatype */ + /*234*/ { "[7241]00", ZINT_WARN_NONCOMPLIANT, "724100", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ + /*235*/ { "[7241]11", ZINT_WARN_NONCOMPLIANT, "724111", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ + /*236*/ { "[7241]79", ZINT_WARN_NONCOMPLIANT, "724179", "261: AI (7241) position 3: Invalid AIDC media type" }, /* mediatype */ + /*237*/ { "[8001]12341234512311", 0, "800112341234512311", "" }, /* nonzero */ + /*238*/ { "[8001]00010000100100", 0, "800100010000100100", "" }, /* nonzero */ + /*239*/ { "[8001]00001234512311", ZINT_WARN_NONCOMPLIANT, "800100001234512311", "261: AI (8001) position 1: Zero not permitted" }, /* nonzero */ + /*240*/ { "[8001]12340000012311", ZINT_WARN_NONCOMPLIANT, "800112340000012311", "261: AI (8001) position 5: Zero not permitted" }, /* nonzero */ + /*241*/ { "[8001]00010000100011", ZINT_WARN_NONCOMPLIANT, "800100010000100011", "261: AI (8001) position 10: Zero not permitted" }, /* nonzero */ + /*242*/ { "[8001]00010000100101", 0, "800100010000100101", "" }, /* winding */ + /*243*/ { "[8001]00010000100111", 0, "800100010000100111", "" }, /* winding */ + /*244*/ { "[8001]00010000100191", 0, "800100010000100191", "" }, /* winding */ + /*245*/ { "[8001]00010000100121", ZINT_WARN_NONCOMPLIANT, "800100010000100121", "261: AI (8001) position 13: Invalid winding direction '2'" }, /* winding */ + /*246*/ { "[8001]00010000100131", ZINT_WARN_NONCOMPLIANT, "800100010000100131", "261: AI (8001) position 13: Invalid winding direction '3'" }, /* winding */ + /*247*/ { "[8001]00010000100171", ZINT_WARN_NONCOMPLIANT, "800100010000100171", "261: AI (8001) position 13: Invalid winding direction '7'" }, /* winding */ + /*248*/ { "[8001]00010000100181", ZINT_WARN_NONCOMPLIANT, "800100010000100181", "261: AI (8001) position 13: Invalid winding direction '8'" }, /* winding */ + /*249*/ { "[8003]01234567890128", 0, "800301234567890128", "" }, /* zero */ + /*250*/ { "[8003]11234567890128", ZINT_WARN_NONCOMPLIANT, "800311234567890128", "261: AI (8003) position 1: Zero is required" }, /* zero */ + /*251*/ { "[8003]91234567890128", ZINT_WARN_NONCOMPLIANT, "800391234567890128", "261: AI (8003) position 1: Zero is required" }, /* zero */ + /*252*/ { "[8006]123456789012310101", 0, "8006123456789012310101", "" }, /* pieceoftotal */ + /*253*/ { "[8006]123456789012310199", 0, "8006123456789012310199", "" }, /* pieceoftotal */ + /*254*/ { "[8006]123456789012319999", 0, "8006123456789012319999", "" }, /* pieceoftotal */ + /*255*/ { "[8006]123456789012310001", ZINT_WARN_NONCOMPLIANT, "8006123456789012310001", "261: AI (8006) position 15: Piece number cannot be zero" }, /* pieceoftotal */ + /*256*/ { "[8006]123456789012310100", ZINT_WARN_NONCOMPLIANT, "8006123456789012310100", "261: AI (8006) position 15: Total number cannot be zero" }, /* pieceoftotal */ + /*257*/ { "[8006]123456789012310201", ZINT_WARN_NONCOMPLIANT, "8006123456789012310201", "261: AI (8006) position 15: Piece number '02' exceeds total '01'" }, /* pieceoftotal */ + /*258*/ { "[8006]123456789012319998", ZINT_WARN_NONCOMPLIANT, "8006123456789012319998", "261: AI (8006) position 15: Piece number '99' exceeds total '98'" }, /* pieceoftotal */ + /*259*/ { "[8007]GB82WEST12345698765432", 0, "8007GB82WEST12345698765432", "" }, /* iban */ + /*260*/ { "[8007]GB83WEST12345698765432", ZINT_WARN_NONCOMPLIANT, "8007GB83WEST12345698765432", "261: AI (8007) position 3: Bad IBAN checksum '83', expected '82'" }, /* iban */ + /*261*/ { "[8007]BE71096123456769", 0, "8007BE71096123456769", "" }, /* iban */ + /*262*/ { "[8007]BE71096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE71096123456760", "261: AI (8007) position 3: Bad IBAN checksum '71', expected '23'" }, /* iban */ + /*263*/ { "[8007]BE01096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE01096123456760", "261: AI (8007) position 3: Bad IBAN checksum '01', expected '23'" }, /* iban */ + /*264*/ { "[8007]BE00096123456760", ZINT_WARN_NONCOMPLIANT, "8007BE00096123456760", "261: AI (8007) position 3: Bad IBAN checksum '00', expected '23'" }, /* iban */ + /*265*/ { "[8007]LC14BOSL123456789012345678901234", 0, "8007LC14BOSL123456789012345678901234", "" }, /* iban */ + /*266*/ { "[8007]LC14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007LC14BOSL123456789012345678901230", "261: AI (8007) position 3: Bad IBAN checksum '14', expected '25'" }, /* iban */ + /*267*/ { "[8007]A114BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007A114BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code 'A1'" }, /* iban */ + /*268*/ { "[8007]1A14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "80071A14BOSL123456789012345678901230", "261: AI (8007) position 1: Non-alphabetic IBAN country code '1A'" }, /* iban */ + /*269*/ { "[8007]AA14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007AA14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'AA'" }, /* iban */ + /*270*/ { "[8007]ZZ14BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZZ14BOSL123456789012345678901230", "261: AI (8007) position 1: Invalid IBAN country code 'ZZ'" }, /* iban */ + /*271*/ { "[8007]ZW33BOSL123456789012345678901230", 0, "8007ZW33BOSL123456789012345678901230", "" }, /* iban */ + /*272*/ { "[8007]ZWA3BOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZWA3BOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum 'A3'" }, /* iban */ + /*273*/ { "[8007]ZW3ABOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW3ABOSL123456789012345678901230", "261: AI (8007) position 3: Non-numeric IBAN checksum '3A'" }, /* iban */ + /*274*/ { "[8007]ZW33bOSL123456789012345678901230", ZINT_WARN_NONCOMPLIANT, "8007ZW33bOSL123456789012345678901230", "261: AI (8007) position 5: Invalid IBAN character 'b'" }, /* iban */ + /*275*/ { "[8007]GB98", ZINT_WARN_NONCOMPLIANT, "8007GB98", "259: Invalid data length for AI (8007)" }, /* iban */ + /*276*/ { "[8007]FR7630006000011234567890189", 0, "8007FR7630006000011234567890189", "" }, /* iban */ + /*277*/ { "[8007]DE91100000000123456789", 0, "8007DE91100000000123456789", "" }, /* iban */ + /*278*/ { "[8007]GR9608100010000001234567890", 0, "8007GR9608100010000001234567890", "" }, /* iban */ + /*279*/ { "[8007]MU43BOMM0101123456789101000MUR", 0, "8007MU43BOMM0101123456789101000MUR", "" }, /* iban */ + /*280*/ { "[8007]PL10105000997603123456789123", 0, "8007PL10105000997603123456789123", "" }, /* iban */ + /*281*/ { "[8007]RO09BCYP0000001234567890", 0, "8007RO09BCYP0000001234567890", "" }, /* iban */ + /*282*/ { "[8007]SA4420000001234567891234", 0, "8007SA4420000001234567891234", "" }, /* iban */ + /*283*/ { "[8007]ES7921000813610123456789", 0, "8007ES7921000813610123456789", "" }, /* iban */ + /*284*/ { "[8007]CH5604835012345678009", 0, "8007CH5604835012345678009", "" }, /* iban */ + /*285*/ { "[8007]GB98MIDL07009312345678", 0, "8007GB98MIDL07009312345678", "" }, /* iban */ + /*286*/ { "[8011]1", 0, "80111", "" }, /* nozeroprefix */ + /*287*/ { "[8011]11", 0, "801111", "" }, /* nozeroprefix */ + /*288*/ { "[8011]0", 0, "80110", "" }, /* nozeroprefix */ + /*289*/ { "[8011]01", ZINT_WARN_NONCOMPLIANT, "801101", "261: AI (8011) position 1: Zero prefix is not permitted" }, /* nozeroprefix */ + /*290*/ { "[8110]106141416543213150110120", 0, "8110106141416543213150110120", "" }, /* couponcode (first part of NACAG Appendix C: Example 1 - see test_rss.c test_examples) */ + /*291*/ { "[8110]012345612345610104123", 0, "8110012345612345610104123", "" }, /* couponcode */ + /*292*/ { "[8110]01234561234561010412", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412", "259: Invalid data length for AI (8110)" }, /* couponcode */ + /*293*/ { "[8110]12345678901234567890", ZINT_WARN_NONCOMPLIANT, "811012345678901234567890", "259: Invalid data length for AI (8110)" }, /* couponcode */ + /*294*/ { "[8110]712345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110712345612345610104123", "261: AI (8110) position 1: Invalid Primary GS1 Co. Prefix VLI '7'" }, /* couponcode */ + /*295*/ { "[8110]A12345612345610104123", ZINT_WARN_NONCOMPLIANT, "8110A12345612345610104123", "261: AI (8110) position 1: Non-numeric Primary GS1 Co. Prefix VLI 'A'" }, /* couponcode */ + /*296*/ { "[8110]012345A12345610104123", ZINT_WARN_NONCOMPLIANT, "8110012345A12345610104123", "261: AI (8110) position 7: Non-numeric Primary GS1 Co. Prefix 'A'" }, /* couponcode */ + /*297*/ { "[8110]012345612345A10104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345A10104123", "261: AI (8110) position 8: Non-numeric Offer Code" }, /* couponcode */ + /*298*/ { "[8110]012345612345600104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345600104123", "261: AI (8110) position 14: Invalid Save Value VLI '0'" }, /* couponcode */ + /*299*/ { "[8110]012345612345660104123", ZINT_WARN_NONCOMPLIANT, "8110012345612345660104123", "261: AI (8110) position 14: Invalid Save Value VLI '6'" }, /* couponcode */ + /*300*/ { "[8110]01234561234561A104123", ZINT_WARN_NONCOMPLIANT, "811001234561234561A104123", "261: AI (8110) position 15: Non-numeric Save Value 'A'" }, /* couponcode */ + /*301*/ { "[8110]012345612345610004123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610004123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '0'" }, /* couponcode */ + /*302*/ { "[8110]012345612345610604123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610604123", "261: AI (8110) position 16: Invalid Primary Purch. Req. VLI '6'" }, /* couponcode */ + /*303*/ { "[8110]0123456123456101A4123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101A4123", "261: AI (8110) position 17: Non-numeric Primary Purch. Req. 'A'" }, /* couponcode */ + /*304*/ { "[8110]012345612345621251234", ZINT_WARN_NONCOMPLIANT, "8110012345612345621251234", "261: AI (8110) position 18: Primary Purch. Req. incomplete" }, /* couponcode */ + /*305*/ { "[8110]01234561234561010A123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010A123", "261: AI (8110) position 18: Non-numeric Primary Purch. Req. Code" }, /* couponcode */ + /*306*/ { "[8110]012345612345610106123", ZINT_WARN_NONCOMPLIANT, "8110012345612345610106123", "261: AI (8110) position 18: Invalid Primary Purch. Req. Code '6'" }, /* couponcode */ + /*307*/ { "[8110]012345612345610212412", ZINT_WARN_NONCOMPLIANT, "8110012345612345610212412", "261: AI (8110) position 20: Primary Purch. Family Code incomplete" }, /* couponcode */ + /*308*/ { "[8110]0123456123456103123412", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412", "261: AI (8110) position 21: Primary Purch. Family Code incomplete" }, /* couponcode */ + /*309*/ { "[8110]0123456123456103123412A", ZINT_WARN_NONCOMPLIANT, "81100123456123456103123412A", "261: AI (8110) position 21: Non-numeric Primary Purch. Family Code" }, /* couponcode */ + /*310*/ { "[8110]01234561234561031234123", 0, "811001234561234561031234123", "" }, /* couponcode */ + /*311*/ { "[8110]612345678901212345651", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651", "261: AI (8110) position 21: Save Value incomplete" }, /* couponcode */ + /*312*/ { "[8110]6123456789012123456512345", ZINT_WARN_NONCOMPLIANT, "81106123456789012123456512345", "261: AI (8110) position 26: Primary Purch. Req. VLI missing" }, /* couponcode */ + /*313*/ { "[8110]61234567890121234565123455123454123", 0, "811061234567890121234565123455123454123", "" }, /* couponcode */ + /*314*/ { "[8110]61234567890121234565123455123454123A", ZINT_WARN_NONCOMPLIANT, "811061234567890121234565123455123454123A", "261: AI (8110) position 36: Non-numeric Data Field 'A'" }, /* couponcode */ + /*315*/ { "[8110]612345678901212345651234551234541237", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541237", "261: AI (8110) position 36: Invalid Data Field '7'" }, /* couponcode */ + /*316*/ { "[8110]612345678901212345651234551234541238", ZINT_WARN_NONCOMPLIANT, "8110612345678901212345651234551234541238", "261: AI (8110) position 36: Invalid Data Field '8'" }, /* couponcode */ + /*317*/ { "[8110]0123456123456101041231", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231", "261: AI (8110) position 23: Add. Purch. Rules Code incomplete" }, /* couponcode */ + /*318*/ { "[8110]0123456123456101041231A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231A", "261: AI (8110) position 23: Non-numeric Add. Purch. Rules Code" }, /* couponcode */ + /*319*/ { "[8110]01234561234561010412314", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412314", "261: AI (8110) position 23: Invalid Add. Purch. Rules Code '4'" }, /* couponcode */ + /*320*/ { "[8110]01234561234561010412313", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313", "261: AI (8110) position 24: 2nd Purch. Req. VLI missing" }, /* couponcode */ + /*321*/ { "[8110]01234561234561010412313A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313A", "261: AI (8110) position 24: Non-numeric 2nd Purch. Req. VLI 'A'" }, /* couponcode */ + /*322*/ { "[8110]012345612345610104123130", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123130", "261: AI (8110) position 24: Invalid 2nd Purch. Req. VLI '0'" }, /* couponcode */ + /*323*/ { "[8110]012345612345610104123131", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131", "261: AI (8110) position 25: 2nd Purch. Req. incomplete" }, /* couponcode */ + /*324*/ { "[8110]012345612345610104123131A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123131A", "261: AI (8110) position 25: Non-numeric 2nd Purch. Req. 'A'" }, /* couponcode */ + /*325*/ { "[8110]0123456123456101041231310", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310", "261: AI (8110) position 26: 2nd Purch. Req. Code incomplete" }, /* couponcode */ + /*326*/ { "[8110]0123456123456101041231310A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041231310A", "261: AI (8110) position 26: Non-numeric 2nd Purch. Req. Code" }, /* couponcode */ + /*327*/ { "[8110]01234561234561010412313108", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313108", "261: AI (8110) position 26: Invalid 2nd Purch. Req. Code '8'" }, /* couponcode */ + /*328*/ { "[8110]01234561234561010412313100", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100", "261: AI (8110) position 27: 2nd Purch. Family Code incomplete" }, /* couponcode */ + /*329*/ { "[8110]01234561234561010412313100123", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123", "261: AI (8110) position 30: 2nd Purch. GS1 Co. Prefix VLI missing" }, /* couponcode */ + /*330*/ { "[8110]01234561234561010412313100123A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123A", "261: AI (8110) position 30: Non-numeric 2nd Purch. GS1 Co. Prefix VLI 'A'" }, /* couponcode */ + /*331*/ { "[8110]012345612345610104123131001239", 0, "8110012345612345610104123131001239", "" }, /* couponcode */ + /*332*/ { "[8110]01234561234561010412313100123012345", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412313100123012345", "261: AI (8110) position 31: 2nd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ + /*333*/ { "[8110]0123456123456101041231310012311234567", 0, "81100123456123456101041231310012311234567", "" }, /* couponcode */ + /*334*/ { "[8110]0123456123456101041232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232", "261: AI (8110) position 23: 3rd Purch. Req. VLI missing" }, /* couponcode */ + /*335*/ { "[8110]0123456123456101041232A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232A", "261: AI (8110) position 23: Non-numeric 3rd Purch. Req. VLI 'A'" }, /* couponcode */ + /*336*/ { "[8110]01234561234561010412326", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412326", "261: AI (8110) position 23: Invalid 3rd Purch. Req. VLI '6'" }, /* couponcode */ + /*337*/ { "[8110]01234561234561010412321", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321", "261: AI (8110) position 24: 3rd Purch. Req. incomplete" }, /* couponcode */ + /*338*/ { "[8110]012345612345610104123210", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210", "261: AI (8110) position 25: 3rd Purch. Req. Code incomplete" }, /* couponcode */ + /*339*/ { "[8110]0123456123456101041232105", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232105", "261: AI (8110) position 25: Invalid 3rd Purch. Req. Code '5'" }, /* couponcode */ + /*340*/ { "[8110]0123456123456101041232104", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104", "261: AI (8110) position 26: 3rd Purch. Family Code incomplete" }, /* couponcode */ + /*341*/ { "[8110]012345612345610104123210412A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123210412A", "261: AI (8110) position 26: Non-numeric 3rd Purch. Family Code" }, /* couponcode */ + /*342*/ { "[8110]0123456123456101041232104123", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123", "261: AI (8110) position 29: 3rd Purch. GS1 Co. Prefix VLI missing" }, /* couponcode */ + /*343*/ { "[8110]01234561234561010412321041230", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412321041230", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ + /*344*/ { "[8110]0123456123456101041232104123A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123A", "261: AI (8110) position 29: Non-numeric 3rd Purch. GS1 Co. Prefix VLI 'A'" }, /* couponcode */ + /*345*/ { "[8110]0123456123456101041232104123012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345", "261: AI (8110) position 30: 3rd Purch. GS1 Co. Prefix incomplete" }, /* couponcode */ + /*346*/ { "[8110]0123456123456101041232104123012345A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041232104123012345A", "261: AI (8110) position 35: Non-numeric 3rd Purch. GS1 Co. Prefix 'A'" }, /* couponcode */ + /*347*/ { "[8110]01234561234561010412321041230123456", 0, "811001234561234561010412321041230123456", "" }, /* couponcode */ + /*348*/ { "[8110]0123456123456101041233", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233", "261: AI (8110) position 23: Expiration Date incomplete" }, /* couponcode */ + /*349*/ { "[8110]01234561234561010412332012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412332012", "261: AI (8110) position 23: Expiration Date incomplete" }, /* couponcode */ + /*350*/ { "[8110]012345612345610104123320123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123320123A", "261: AI (8110) position 23: Non-numeric Expiration Date" }, /* couponcode */ + /*351*/ { "[8110]0123456123456101041233201232", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233201232", "261: AI (8110) position 27: Invalid day '32'" }, /* couponcode */ + /*352*/ { "[8110]0123456123456101041233200031", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041233200031", "261: AI (8110) position 25: Invalid month '00'" }, /* couponcode */ + /*353*/ { "[8110]0123456123456101041233201231", 0, "81100123456123456101041233201231", "" }, /* couponcode */ + /*354*/ { "[8110]0123456123456101041234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234", "261: AI (8110) position 23: Start Date incomplete" }, /* couponcode */ + /*355*/ { "[8110]01234561234561010412342012", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412342012", "261: AI (8110) position 23: Start Date incomplete" }, /* couponcode */ + /*356*/ { "[8110]012345612345610104123420123A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123420123A", "261: AI (8110) position 23: Non-numeric Start Date" }, /* couponcode */ + /*357*/ { "[8110]0123456123456101041234200230", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234200230", "261: AI (8110) position 27: Invalid day '30'" }, /* couponcode */ + /*358*/ { "[8110]0123456123456101041234201329", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041234201329", "261: AI (8110) position 25: Invalid month '13'" }, /* couponcode */ + /*359*/ { "[8110]0123456123456101041234200229", 0, "81100123456123456101041234200229", "" }, /* couponcode */ + /*360*/ { "[8110]0123456123456101041235", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235", "261: AI (8110) position 23: Serial Number VLI missing" }, /* couponcode */ + /*361*/ { "[8110]0123456123456101041235A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235A", "261: AI (8110) position 23: Non-numeric Serial Number VLI 'A'" }, /* couponcode */ + /*362*/ { "[8110]01234561234561010412350", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412350", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ + /*363*/ { "[8110]0123456123456101041235012345", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235012345", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ + /*364*/ { "[8110]0123456123456101041235912345678901234", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234", "261: AI (8110) position 24: Serial Number incomplete" }, /* couponcode */ + /*365*/ { "[8110]0123456123456101041235912345678901234A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041235912345678901234A", "261: AI (8110) position 38: Non-numeric Serial Number 'A'" }, /* couponcode */ + /*366*/ { "[8110]01234561234561010412359123456789012345", 0, "811001234561234561010412359123456789012345", "" }, /* couponcode */ + /*367*/ { "[8110]0123456123456101041236", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236", "261: AI (8110) position 23: Retailer ID VLI missing" }, /* couponcode */ + /*368*/ { "[8110]0123456123456101041236A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041236A", "261: AI (8110) position 23: Non-numeric Retailer ID VLI 'A'" }, /* couponcode */ + /*369*/ { "[8110]01234561234561010412360", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412360", "261: AI (8110) position 23: Invalid Retailer ID VLI '0'" }, /* couponcode */ + /*370*/ { "[8110]01234561234561010412368", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412368", "261: AI (8110) position 23: Invalid Retailer ID VLI '8'" }, /* couponcode */ + /*371*/ { "[8110]01234561234561010412361", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361", "261: AI (8110) position 24: Retailer ID incomplete" }, /* couponcode */ + /*372*/ { "[8110]01234561234561010412361123456", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456", "261: AI (8110) position 24: Retailer ID incomplete" }, /* couponcode */ + /*373*/ { "[8110]01234561234561010412361123456A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412361123456A", "261: AI (8110) position 30: Non-numeric Retailer ID 'A'" }, /* couponcode */ + /*374*/ { "[8110]012345612345610104123671234567890123", 0, "8110012345612345610104123671234567890123", "" }, /* couponcode */ + /*375*/ { "[8110]0123456123456101041239", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239", "261: AI (8110) position 23: Save Value Code incomplete" }, /* couponcode */ + /*376*/ { "[8110]0123456123456101041239A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239A", "261: AI (8110) position 23: Non-numeric Save Value Code" }, /* couponcode */ + /*377*/ { "[8110]01234561234561010412393", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412393", "261: AI (8110) position 23: Invalid Save Value Code '3'" }, /* couponcode */ + /*378*/ { "[8110]01234561234561010412394", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412394", "261: AI (8110) position 23: Invalid Save Value Code '4'" }, /* couponcode */ + /*379*/ { "[8110]01234561234561010412397", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412397", "261: AI (8110) position 23: Invalid Save Value Code '7'" }, /* couponcode */ + /*380*/ { "[8110]01234561234561010412390", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390", "261: AI (8110) position 24: Save Value Applies To incomplete" }, /* couponcode */ + /*381*/ { "[8110]01234561234561010412390A", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390A", "261: AI (8110) position 24: Non-numeric Save Value Applies To" }, /* couponcode */ + /*382*/ { "[8110]012345612345610104123903", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123903", "261: AI (8110) position 24: Invalid Save Value Applies To '3'" }, /* couponcode */ + /*383*/ { "[8110]012345612345610104123902", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902", "261: AI (8110) position 25: Store Coupon Flag incomplete" }, /* couponcode */ + /*384*/ { "[8110]012345612345610104123902A", ZINT_WARN_NONCOMPLIANT, "8110012345612345610104123902A", "261: AI (8110) position 25: Non-numeric Store Coupon Flag" }, /* couponcode */ + /*385*/ { "[8110]0123456123456101041239029", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029", "261: AI (8110) position 26: Don't Multiply Flag incomplete" }, /* couponcode */ + /*386*/ { "[8110]0123456123456101041239029A", ZINT_WARN_NONCOMPLIANT, "81100123456123456101041239029A", "261: AI (8110) position 26: Non-numeric Don't Multiply Flag" }, /* couponcode */ + /*387*/ { "[8110]01234561234561010412390292", ZINT_WARN_NONCOMPLIANT, "811001234561234561010412390292", "261: AI (8110) position 26: Invalid Don't Multiply Flag '2'" }, /* couponcode */ + /*388*/ { "[8110]01234561234561010412390291", 0, "811001234561234561010412390291", "" }, /* couponcode */ + /*389*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601522345678961345678990000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (8110)" }, /* couponcode (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112)) */ + /*390*/ { "[8110]177777776666663100120444101105551888888821109991222222232012314200601", 0, "8110177777776666663100120444101105551888888821109991222222232012314200601", "" }, /* couponcode */ + /*391*/ { "[8112]017777777666666223456789", 0, "8112017777777666666223456789", "" }, /* couponposoffer (example from GS1 AI (8112) Coupon Data Specifications Appendix A: AI (8110) vs AI (8112)) */ + /*392*/ { "[8112]001234561234560123456", 0, "8112001234561234560123456", "" }, /* couponposoffer */ + /*393*/ { "[8112]00123456123456012345", ZINT_WARN_NONCOMPLIANT, "811200123456123456012345", "259: Invalid data length for AI (8112)" }, /* couponposoffer */ + /*394*/ { "[8112]0012345612345601234561", ZINT_WARN_NONCOMPLIANT, "81120012345612345601234561", "261: AI (8112) position 22: Reserved trailing characters" }, /* couponposoffer */ + /*395*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345", "" }, /* couponposoffer */ + /*396*/ { "[8112]0612345678901212345691234567890123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345691234567890123456", "259: Invalid data length for AI (8112)" }, /* couponposoffer */ + /*397*/ { "[8112]06123456789012123456912345678901234A", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234A", "261: AI (8112) position 36: Non-numeric Serial Number 'A'" }, /* couponposoffer */ + /*398*/ { "[8112]06123456789012123456912345678901234", ZINT_WARN_NONCOMPLIANT, "811206123456789012123456912345678901234", "261: AI (8112) position 22: Serial Number incomplete" }, /* couponposoffer */ + /*399*/ { "[8112]06123456789012123456812345678901234", 0, "811206123456789012123456812345678901234", "" }, /* couponposoffer */ + /*400*/ { "[8112]0612345678901212345681234567890123", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345681234567890123", "261: AI (8112) position 22: Serial Number incomplete" }, /* couponposoffer */ + /*401*/ { "[8112]0612345678901212345A0123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901212345A0123456", "261: AI (8112) position 15: Non-numeric Offer Code" }, /* couponposoffer */ + /*402*/ { "[8112]0612345678901A1234560123456", ZINT_WARN_NONCOMPLIANT, "81120612345678901A1234560123456", "261: AI (8112) position 14: Non-numeric Coupon Funder ID 'A'" }, /* couponposoffer */ + /*403*/ { "[8112]071234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112071234567890121234560123456", "261: AI (8112) position 2: Invalid Coupon Funder ID VLI '7'" }, /* couponposoffer */ + /*404*/ { "[8112]0A1234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "81120A1234567890121234560123456", "261: AI (8112) position 2: Non-numeric Coupon Funder ID VLI 'A'" }, /* couponposoffer */ + /*405*/ { "[8112]261234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112261234567890121234560123456", "261: AI (8112) position 1: Coupon Format must be 0 or 1" }, /* couponposoffer */ + /*406*/ { "[8112]A61234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112A61234567890121234560123456", "261: AI (8112) position 1: Non-numeric Coupon Format" }, /* couponposoffer */ + /*407*/ { "[4330]023020", 0, "4330023020", "" }, /* hyphen */ + /*408*/ { "[4330]023020-", 0, "4330023020-", "" }, /* hyphen */ + /*409*/ { "[4330]023020+", ZINT_WARN_NONCOMPLIANT, "4330023020+", "261: AI (4330) position 7: Invalid temperature indicator (hyphen only)" }, /* hyphen */ + /*410*/ { "[4330]02302", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ + /*411*/ { "[4330]02302000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ + /*412*/ { "[7252]0", 0, "72520", "" }, /* iso5218 */ + /*413*/ { "[7252]1", 0, "72521", "" }, /* iso5218 */ + /*414*/ { "[7252]2", 0, "72522", "" }, /* iso5218 */ + /*415*/ { "[7252]9", 0, "72529", "" }, /* iso5218 */ + /*416*/ { "[7252]3", ZINT_WARN_NONCOMPLIANT, "72523", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ + /*417*/ { "[7252]5", ZINT_WARN_NONCOMPLIANT, "72525", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ + /*418*/ { "[7252]8", ZINT_WARN_NONCOMPLIANT, "72528", "261: AI (7252) position 1: Invalid biological sex code (0, 1, 2 or 9 only)" }, /* iso5218 */ + /*419*/ { "[7258]1/2", 0, "72581/2", "" }, /* posinseqslash */ + /*420*/ { "[7258]2/2", 0, "72582/2", "" }, /* posinseqslash */ + /*421*/ { "[7258]1/9", 0, "72581/9", "" }, /* posinseqslash */ + /*422*/ { "[7258]8/9", 0, "72588/9", "" }, /* posinseqslash */ + /*423*/ { "[7258]9/9", 0, "72589/9", "" }, /* posinseqslash */ + /*424*/ { "[7258]0/2", ZINT_WARN_NONCOMPLIANT, "72580/2", "261: AI (7258) position 1: Sequence position cannot be zero" }, /* posinseqslash */ + /*425*/ { "[7258]1/0", ZINT_WARN_NONCOMPLIANT, "72581/0", "261: AI (7258) position 3: Sequence total cannot be zero" }, /* posinseqslash */ + /*426*/ { "[7258]2/1", ZINT_WARN_NONCOMPLIANT, "72582/1", "261: AI (7258) position 1: Sequence position greater than total" }, /* posinseqslash */ + /*427*/ { "[7258]111", ZINT_WARN_NONCOMPLIANT, "7258111", "261: AI (7258) position 1: No sequence separator ('/')" }, /* posinseqslash */ + /*428*/ { "[7258]1//", ZINT_WARN_NONCOMPLIANT, "72581//", "261: AI (7258) position 3: Single sequence separator ('/') only" }, /* posinseqslash */ + /*429*/ { "[7258]/11", ZINT_WARN_NONCOMPLIANT, "7258/11", "261: AI (7258) position 1: Sequence separator '/' cannot start or end" }, /* posinseqslash */ + /*430*/ { "[7258]11/", ZINT_WARN_NONCOMPLIANT, "725811/", "261: AI (7258) position 3: Sequence separator '/' cannot start or end" }, /* posinseqslash */ + /*431*/ { "[7258]1+1", ZINT_WARN_NONCOMPLIANT, "72581+1", "261: AI (7258) position 2: Invalid character '+' in sequence" }, /* posinseqslash */ + /*432*/ { "[7258]1/A", ZINT_WARN_NONCOMPLIANT, "72581/A", "261: AI (7258) position 3: Invalid character 'A' in sequence" }, /* posinseqslash */ + /*433*/ { "[8014]990000A35", 0, "8014990000A35", "" }, /* hasnondigit */ + /*434*/ { "[8014]990000025", ZINT_WARN_NONCOMPLIANT, "8014990000025", "261: AI (8014) position 1: A non-digit character is required" }, /* hasnondigit */ + /*435*/ { "[7041]8", 0, "70418", "" }, /* packagetype */ + /*436*/ { "[7041]9", 0, "70419", "" }, /* packagetype */ + /*437*/ { "[7041]9[00]123456789012345675", 0, "70419\03500123456789012345675", "" }, /* packagetype */ + /*438*/ { "[7041]20", ZINT_WARN_NONCOMPLIANT, "704120", "261: AI (7041) position 1: Invalid package type '20'" }, /* packagetype */ + /*439*/ { "[7041]20[00]123456789012345675", ZINT_WARN_NONCOMPLIANT, "704120\03500123456789012345675", "261: AI (7041) position 1: Invalid package type '20'" }, /* packagetype */ + /*440*/ { "[7041]200", 0, "7041200", "" }, /* packagetype */ + /*441*/ { "[7041]200[00]123456789012345675", 0, "7041200\03500123456789012345675", "" }, /* packagetype */ + /*442*/ { "[7041]2000", ZINT_WARN_NONCOMPLIANT, "70412000", "261: AI (7041) position 1: Invalid package type '2000'" }, /* packagetype */ + /*443*/ { "[7041]200_", ZINT_WARN_NONCOMPLIANT, "7041200_", "261: AI (7041) position 1: Invalid package type '200_'" }, /* packagetype */ + /*444*/ { "[7041]_", ZINT_WARN_NONCOMPLIANT, "7041_", "261: AI (7041) position 1: Invalid package type '_'" }, /* packagetype */ + /*445*/ { "[7041]_9", ZINT_WARN_NONCOMPLIANT, "7041_9", "261: AI (7041) position 1: Invalid package type '_9'" }, /* packagetype */ + /*446*/ { "[7041]9_", ZINT_WARN_NONCOMPLIANT, "70419_", "261: AI (7041) position 1: Invalid package type '9_'" }, /* packagetype */ + /*447*/ { "[7041]/", ZINT_WARN_NONCOMPLIANT, "7041/", "261: AI (7041) position 1: Invalid package type '/'" }, /* packagetype */ + /*448*/ { "[7041]/9", ZINT_WARN_NONCOMPLIANT, "7041/9", "261: AI (7041) position 1: Invalid package type '/9'" }, /* packagetype */ + /*449*/ { "[7041]9/", ZINT_WARN_NONCOMPLIANT, "70419/", "261: AI (7041) position 1: Invalid package type '9/'" }, /* packagetype */ + /*450*/ { "[7041]0", ZINT_WARN_NONCOMPLIANT, "70410", "261: AI (7041) position 1: Invalid package type '0'" }, /* packagetype */ + /*451*/ { "[7041]00", ZINT_WARN_NONCOMPLIANT, "704100", "261: AI (7041) position 1: Invalid package type '00'" }, /* packagetype */ + /*452*/ { "[7041]000", ZINT_WARN_NONCOMPLIANT, "7041000", "261: AI (7041) position 1: Invalid package type '000'" }, /* packagetype */ + /*453*/ { "[7041]0000", ZINT_WARN_NONCOMPLIANT, "70410000", "261: AI (7041) position 1: Invalid package type '0000'" }, /* packagetype */ + /*454*/ { "[7041]1", ZINT_WARN_NONCOMPLIANT, "70411", "261: AI (7041) position 1: Invalid package type '1'" }, /* packagetype */ + /*455*/ { "[7041]//", ZINT_WARN_NONCOMPLIANT, "7041//", "261: AI (7041) position 1: Invalid package type '//'" }, /* packagetype */ + /*456*/ { "[7041]11", ZINT_WARN_NONCOMPLIANT, "704111", "261: AI (7041) position 1: Invalid package type '11'" }, /* packagetype */ + /*457*/ { "[7041]1A", 0, "70411A", "" }, /* packagetype */ + /*458*/ { "[7041]1A1", ZINT_WARN_NONCOMPLIANT, "70411A1", "261: AI (7041) position 1: Invalid package type '1A1'" }, /* packagetype */ + /*459*/ { "[7041]1_A1", ZINT_WARN_NONCOMPLIANT, "70411_A1", "261: AI (7041) position 1: Invalid package type '1_A1'" }, /* packagetype */ + /*460*/ { "[7041]1A1_", ZINT_WARN_NONCOMPLIANT, "70411A1_", "261: AI (7041) position 1: Invalid package type '1A1_'" }, /* packagetype */ + /*461*/ { "[7041]1B", 0, "70411B", "" }, /* packagetype */ + /*462*/ { "[7041]1W", 0, "70411W", "" }, /* packagetype */ + /*463*/ { "[7041]1X", ZINT_WARN_NONCOMPLIANT, "70411X", "261: AI (7041) position 1: Invalid package type '1X'" }, /* packagetype */ + /*464*/ { "[7041]2A", ZINT_WARN_NONCOMPLIANT, "70412A", "261: AI (7041) position 1: Invalid package type '2A'" }, /* packagetype */ + /*465*/ { "[7041]2B", ZINT_WARN_NONCOMPLIANT, "70412B", "261: AI (7041) position 1: Invalid package type '2B'" }, /* packagetype */ + /*466*/ { "[7041]2C", 0, "70412C", "" }, /* packagetype */ + /*467*/ { "[7041]2D", ZINT_WARN_NONCOMPLIANT, "70412D", "261: AI (7041) position 1: Invalid package type '2D'" }, /* packagetype */ + /*468*/ { "[7041]3A", 0, "70413A", "" }, /* packagetype */ + /*469*/ { "[7041]3H", 0, "70413H", "" }, /* packagetype */ + /*470*/ { "[7041]42", ZINT_WARN_NONCOMPLIANT, "704142", "261: AI (7041) position 1: Invalid package type '42'" }, /* packagetype */ + /*471*/ { "[7041]43", 0, "704143", "" }, /* packagetype */ + /*472*/ { "[7041]44", 0, "704144", "" }, /* packagetype */ + /*473*/ { "[7041]45", ZINT_WARN_NONCOMPLIANT, "704145", "261: AI (7041) position 1: Invalid package type '45'" }, /* packagetype */ + /*474*/ { "[7041]4A", 0, "70414A", "" }, /* packagetype */ + /*475*/ { "[7041]4H", 0, "70414H", "" }, /* packagetype */ + /*476*/ { "[7041]4I", ZINT_WARN_NONCOMPLIANT, "70414I", "261: AI (7041) position 1: Invalid package type '4I'" }, /* packagetype */ + /*477*/ { "[7041]5H", 0, "70415H", "" }, /* packagetype */ + /*478*/ { "[7041]5K", ZINT_WARN_NONCOMPLIANT, "70415K", "261: AI (7041) position 1: Invalid package type '5K'" }, /* packagetype */ + /*479*/ { "[7041]5M", 0, "70415M", "" }, /* packagetype */ + /*480*/ { "[7041]6H", 0, "70416H", "" }, /* packagetype */ + /*481*/ { "[7041]6I", ZINT_WARN_NONCOMPLIANT, "70416I", "261: AI (7041) position 1: Invalid package type '6I'" }, /* packagetype */ + /*482*/ { "[7041]7B", 0, "70417B", "" }, /* packagetype */ + /*483*/ { "[7041]7C", ZINT_WARN_NONCOMPLIANT, "70417C", "261: AI (7041) position 1: Invalid package type '7C'" }, /* packagetype */ + /*484*/ { "[7041]81", ZINT_WARN_NONCOMPLIANT, "704181", "261: AI (7041) position 1: Invalid package type '81'" }, /* packagetype */ + /*485*/ { "[7041]8A", 0, "70418A", "" }, /* packagetype */ + /*486*/ { "[7041]8C", 0, "70418C", "" }, /* packagetype */ + /*487*/ { "[7041]90", ZINT_WARN_NONCOMPLIANT, "704190", "261: AI (7041) position 1: Invalid package type '90'" }, /* packagetype */ + /*488*/ { "[7041]AA", 0, "7041AA", "" }, /* packagetype */ + /*489*/ { "[7041]AB", 0, "7041AB", "" }, /* packagetype */ + /*490*/ { "[7041]AJ", 0, "7041AJ", "" }, /* packagetype */ + /*491*/ { "[7041]AK", ZINT_WARN_NONCOMPLIANT, "7041AK", "261: AI (7041) position 1: Invalid package type 'AK'" }, /* packagetype */ + /*492*/ { "[7041]AM", 0, "7041AM", "" }, /* packagetype */ + /*493*/ { "[7041]AP", 0, "7041AP", "" }, /* packagetype */ + /*494*/ { "[7041]AV", 0, "7041AV", "" }, /* packagetype */ + /*495*/ { "[7041]B3", ZINT_WARN_NONCOMPLIANT, "7041B3", "261: AI (7041) position 1: Invalid package type 'B3'" }, /* packagetype */ + /*496*/ { "[7041]B4", 0, "7041B4", "" }, /* packagetype */ + /*497*/ { "[7041]BA", ZINT_WARN_NONCOMPLIANT, "7041BA", "261: AI (7041) position 1: Invalid package type 'BA'" }, /* packagetype */ + /*498*/ { "[7041]BB", 0, "7041BB", "" }, /* packagetype */ + /*499*/ { "[7041]BG", 0, "7041BG", "" }, /* packagetype */ + /*500*/ { "[7041]BM", 0, "7041BM", "" }, /* packagetype */ + /*501*/ { "[7041]BN", 0, "7041BN", "" }, /* packagetype */ + /*502*/ { "[7041]BR", 0, "7041BR", "" }, /* packagetype */ + /*503*/ { "[7041]BZ", 0, "7041BZ", "" }, /* packagetype */ + /*504*/ { "[7041]C?", ZINT_WARN_NONCOMPLIANT, "7041C?", "261: AI (7041) position 1: Invalid package type 'C?'" }, /* packagetype */ + /*505*/ { "[7041]CA", 0, "7041CA", "" }, /* packagetype */ + /*506*/ { "[7041]CB", 0, "7041CB", "" }, /* packagetype */ + /*507*/ { "[7041]CC", 0, "7041CC", "" }, /* packagetype */ + /*508*/ { "[7041]DA", 0, "7041DA", "" }, /* packagetype */ + /*509*/ { "[7041]DD", ZINT_WARN_NONCOMPLIANT, "7041DD", "261: AI (7041) position 1: Invalid package type 'DD'" }, /* packagetype */ + /*510*/ { "[7041]DF", ZINT_WARN_NONCOMPLIANT, "7041DF", "261: AI (7041) position 1: Invalid package type 'DF'" }, /* packagetype */ + /*511*/ { "[7041]DG", 0, "7041DG", "" }, /* packagetype */ + /*512*/ { "[7041]DP", 0, "7041DP", "" }, /* packagetype */ + /*513*/ { "[7041]DQ", ZINT_WARN_NONCOMPLIANT, "7041DQ", "261: AI (7041) position 1: Invalid package type 'DQ'" }, /* packagetype */ + /*514*/ { "[7041]E0", ZINT_WARN_NONCOMPLIANT, "7041E0", "261: AI (7041) position 1: Invalid package type 'E0'" }, /* packagetype */ + /*515*/ { "[7041]E1", 0, "7041E1", "" }, /* packagetype */ + /*516*/ { "[7041]E3", 0, "7041E3", "" }, /* packagetype */ + /*517*/ { "[7041]EB", ZINT_WARN_NONCOMPLIANT, "7041EB", "261: AI (7041) position 1: Invalid package type 'EB'" }, /* packagetype */ + /*518*/ { "[7041]EC", 0, "7041EC", "" }, /* packagetype */ + /*519*/ { "[7041]FA", ZINT_WARN_NONCOMPLIANT, "7041FA", "261: AI (7041) position 1: Invalid package type 'FA'" }, /* packagetype */ + /*520*/ { "[7041]FO", 0, "7041FO", "" }, /* packagetype */ + /*521*/ { "[7041]FP", 0, "7041FP", "" }, /* packagetype */ + /*522*/ { "[7041]GA", ZINT_WARN_NONCOMPLIANT, "7041GA", "261: AI (7041) position 1: Invalid package type 'GA'" }, /* packagetype */ + /*523*/ { "[7041]GB", 0, "7041GB", "" }, /* packagetype */ + /*524*/ { "[7041]HR", 0, "7041HR", "" }, /* packagetype */ + /*525*/ { "[7041]HT", ZINT_WARN_NONCOMPLIANT, "7041HT", "261: AI (7041) position 1: Invalid package type 'HT'" }, /* packagetype */ + /*526*/ { "[7041]IJ", ZINT_WARN_NONCOMPLIANT, "7041IJ", "261: AI (7041) position 1: Invalid package type 'IJ'" }, /* packagetype */ + /*527*/ { "[7041]IL", 0, "7041IL", "" }, /* packagetype */ + /*528*/ { "[7041]IZ", 0, "7041IZ", "" }, /* packagetype */ + /*529*/ { "[7041]JB", 0, "7041JB", "" }, /* packagetype */ + /*530*/ { "[7041]JD", ZINT_WARN_NONCOMPLIANT, "7041JD", "261: AI (7041) position 1: Invalid package type 'JD'" }, /* packagetype */ + /*531*/ { "[7041]KG", 0, "7041KG", "" }, /* packagetype */ + /*532*/ { "[7041]KH", ZINT_WARN_NONCOMPLIANT, "7041KH", "261: AI (7041) position 1: Invalid package type 'KH'" }, /* packagetype */ + /*533*/ { "[7041]LA", ZINT_WARN_NONCOMPLIANT, "7041LA", "261: AI (7041) position 1: Invalid package type 'LA'" }, /* packagetype */ + /*534*/ { "[7041]LE", 0, "7041LE", "" }, /* packagetype */ + /*535*/ { "[7041]ME", 0, "7041ME", "" }, /* packagetype */ + /*536*/ { "[7041]MP", ZINT_WARN_NONCOMPLIANT, "7041MP", "261: AI (7041) position 1: Invalid package type 'MP'" }, /* packagetype */ + /*537*/ { "[7041]NA", 0, "7041NA", "" }, /* packagetype */ + /*538*/ { "[7041]NB", ZINT_WARN_NONCOMPLIANT, "7041NB", "261: AI (7041) position 1: Invalid package type 'NB'" }, /* packagetype */ + /*539*/ { "[7041]OK", 0, "7041OK", "" }, /* packagetype */ + /*540*/ { "[7041]OP", ZINT_WARN_NONCOMPLIANT, "7041OP", "261: AI (7041) position 1: Invalid package type 'OP'" }, /* packagetype */ + /*541*/ { "[7041]P1", ZINT_WARN_NONCOMPLIANT, "7041P1", "261: AI (7041) position 1: Invalid package type 'P1'" }, /* packagetype */ + /*542*/ { "[7041]P2", 0, "7041P2", "" }, /* packagetype */ + /*543*/ { "[7041]P3", ZINT_WARN_NONCOMPLIANT, "7041P3", "261: AI (7041) position 1: Invalid package type 'P3'" }, /* packagetype */ + /*544*/ { "[7041]PA", 0, "7041PA", "" }, /* packagetype */ + /*545*/ { "[7041]PL", 0, "7041PL", "" }, /* packagetype */ + /*546*/ { "[7041]PO", 0, "7041PO", "" }, /* packagetype */ + /*547*/ { "[7041]PQ", ZINT_WARN_NONCOMPLIANT, "7041PQ", "261: AI (7041) position 1: Invalid package type 'PQ'" }, /* packagetype */ + /*548*/ { "[7041]PP", 0, "7041PP", "" }, /* packagetype */ + /*549*/ { "[7041]PU", 0, "7041PU", "" }, /* packagetype */ + /*550*/ { "[7041]QO", ZINT_WARN_NONCOMPLIANT, "7041QO", "261: AI (7041) position 1: Invalid package type 'QO'" }, /* packagetype */ + /*551*/ { "[7041]QS", 0, "7041QS", "" }, /* packagetype */ + /*552*/ { "[7041]RB", ZINT_WARN_NONCOMPLIANT, "7041RB", "261: AI (7041) position 1: Invalid package type 'RB'" }, /* packagetype */ + /*553*/ { "[7041]RC", ZINT_WARN_NONCOMPLIANT, "7041RC", "261: AI (7041) position 1: Invalid package type 'RC'" }, /* packagetype */ + /*554*/ { "[7041]RD", 0, "7041RD", "" }, /* packagetype */ + /*555*/ { "[7041]S1", 0, "7041S1", "" }, /* packagetype */ + /*556*/ { "[7041]S2", ZINT_WARN_NONCOMPLIANT, "7041S2", "261: AI (7041) position 1: Invalid package type 'S2'" }, /* packagetype */ + /*557*/ { "[7041]SE", 0, "7041SE", "" }, /* packagetype */ + /*558*/ { "[7041]ST", 0, "7041ST", "" }, /* packagetype */ + /*559*/ { "[7041]T0", ZINT_WARN_NONCOMPLIANT, "7041T0", "261: AI (7041) position 1: Invalid package type 'T0'" }, /* packagetype */ + /*560*/ { "[7041]T1", 0, "7041T1", "" }, /* packagetype */ + /*561*/ { "[7041]TE", 0, "7041TE", "" }, /* packagetype */ + /*562*/ { "[7041]TR", 0, "7041TR", "" }, /* packagetype */ + /*563*/ { "[7041]TT", 0, "7041TT", "" }, /* packagetype */ + /*564*/ { "[7041]TW", 0, "7041TW", "" }, /* packagetype */ + /*565*/ { "[7041]UA", ZINT_WARN_NONCOMPLIANT, "7041UA", "261: AI (7041) position 1: Invalid package type 'UA'" }, /* packagetype */ + /*566*/ { "[7041]UN", 0, "7041UN", "" }, /* packagetype */ + /*567*/ { "[7041]UU", ZINT_WARN_NONCOMPLIANT, "7041UU", "261: AI (7041) position 1: Invalid package type 'UU'" }, /* packagetype */ + /*568*/ { "[7041]VK", 0, "7041VK", "" }, /* packagetype */ + /*569*/ { "[7041]WA", 0, "7041WA", "" }, /* packagetype */ + /*570*/ { "[7041]WI", ZINT_WARN_NONCOMPLIANT, "7041WI", "261: AI (7041) position 1: Invalid package type 'WI'" }, /* packagetype */ + /*571*/ { "[7041]WR", 0, "7041WR", "" }, /* packagetype */ + /*572*/ { "[7041]X1", ZINT_WARN_NONCOMPLIANT, "7041X1", "261: AI (7041) position 1: Invalid package type 'X1'" }, /* packagetype */ + /*573*/ { "[7041]X2", ZINT_WARN_NONCOMPLIANT, "7041X2", "261: AI (7041) position 1: Invalid package type 'X2'" }, /* packagetype */ + /*574*/ { "[7041]X3", 0, "7041X3", "" }, /* packagetype */ + /*575*/ { "[7041]XA", 0, "7041XA", "" }, /* packagetype */ + /*576*/ { "[7041]XL", ZINT_WARN_NONCOMPLIANT, "7041XL", "261: AI (7041) position 1: Invalid package type 'XL'" }, /* packagetype */ + /*577*/ { "[7041]YA", 0, "7041YA", "" }, /* packagetype */ + /*578*/ { "[7041]YE", ZINT_WARN_NONCOMPLIANT, "7041YE", "261: AI (7041) position 1: Invalid package type 'YE'" }, /* packagetype */ + /*579*/ { "[7041]YZ", 0, "7041YZ", "" }, /* packagetype */ + /*580*/ { "[7041]ZA", 0, "7041ZA", "" }, /* packagetype */ + /*581*/ { "[7041]ZE", ZINT_WARN_NONCOMPLIANT, "7041ZE", "261: AI (7041) position 1: Invalid package type 'ZE'" }, /* packagetype */ + /*582*/ { "[7041]ZY", 0, "7041ZY", "" }, /* packagetype */ + /*583*/ { "[7041]ZZ", 0, "7041ZZ", "" }, /* packagetype */ + /*584*/ { "[7041]Z_", ZINT_WARN_NONCOMPLIANT, "7041Z_", "261: AI (7041) position 1: Invalid package type 'Z_'" }, /* packagetype */ + /*585*/ { "[7041]__", ZINT_WARN_NONCOMPLIANT, "7041__", "261: AI (7041) position 1: Invalid package type '__'" }, /* packagetype */ + /*586*/ { "[7041]///", ZINT_WARN_NONCOMPLIANT, "7041///", "261: AI (7041) position 1: Invalid package type '///'" }, /* packagetype */ + /*587*/ { "[7041]100", ZINT_WARN_NONCOMPLIANT, "7041100", "261: AI (7041) position 1: Invalid package type '100'" }, /* packagetype */ + /*588*/ { "[7041]201", 0, "7041201", "" }, /* packagetype */ + /*589*/ { "[7041]202", 0, "7041202", "" }, /* packagetype */ + /*590*/ { "[7041]206", 0, "7041206", "" }, /* packagetype */ + /*591*/ { "[7041]207", ZINT_WARN_NONCOMPLIANT, "7041207", "261: AI (7041) position 1: Invalid package type '207'" }, /* packagetype */ + /*592*/ { "[7041]210", 0, "7041210", "" }, /* packagetype */ + /*593*/ { "[7041]212", 0, "7041212", "" }, /* packagetype */ + /*594*/ { "[7041]800", ZINT_WARN_NONCOMPLIANT, "7041800", "261: AI (7041) position 1: Invalid package type '800'" }, /* packagetype */ + /*595*/ { "[7041]900", ZINT_WARN_NONCOMPLIANT, "7041900", "261: AI (7041) position 1: Invalid package type '900'" }, /* packagetype */ + /*596*/ { "[7041]AAE", ZINT_WARN_NONCOMPLIANT, "7041AAE", "261: AI (7041) position 1: Invalid package type 'AAE'" }, /* packagetype */ + /*597*/ { "[7041]APE", 0, "7041APE", "" }, /* packagetype */ + /*598*/ { "[7041]APF", ZINT_WARN_NONCOMPLIANT, "7041APF", "261: AI (7041) position 1: Invalid package type 'APF'" }, /* packagetype */ + /*599*/ { "[7041]BBC", ZINT_WARN_NONCOMPLIANT, "7041BBC", "261: AI (7041) position 1: Invalid package type 'BBC'" }, /* packagetype */ + /*600*/ { "[7041]BGE", 0, "7041BGE", "" }, /* packagetype */ + /*601*/ { "[7041]BME", 0, "7041BME", "" }, /* packagetype */ + /*602*/ { "[7041]BRI", 0, "7041BRI", "" }, /* packagetype */ + /*603*/ { "[7041]BSI", ZINT_WARN_NONCOMPLIANT, "7041BSI", "261: AI (7041) position 1: Invalid package type 'BSI'" }, /* packagetype */ + /*604*/ { "[7041]CAL", ZINT_WARN_NONCOMPLIANT, "7041CAL", "261: AI (7041) position 1: Invalid package type 'CAL'" }, /* packagetype */ + /*605*/ { "[7041]CBL", 0, "7041CBL", "" }, /* packagetype */ + /*606*/ { "[7041]CCE", 0, "7041CCE", "" }, /* packagetype */ + /*607*/ { "[7041]DPE", 0, "7041DPE", "" }, /* packagetype */ + /*608*/ { "[7041]DPF", ZINT_WARN_NONCOMPLIANT, "7041DPF", "261: AI (7041) position 1: Invalid package type 'DPF'" }, /* packagetype */ + /*609*/ { "[7041]EPE", ZINT_WARN_NONCOMPLIANT, "7041EPE", "261: AI (7041) position 1: Invalid package type 'EPE'" }, /* packagetype */ + /*610*/ { "[7041]FOB", 0, "7041FOB", "" }, /* packagetype */ + /*611*/ { "[7041]FOC", ZINT_WARN_NONCOMPLIANT, "7041FOC", "261: AI (7041) position 1: Invalid package type 'FOC'" }, /* packagetype */ + /*612*/ { "[7041]FPE", 0, "7041FPE", "" }, /* packagetype */ + /*613*/ { "[7041]GPE", ZINT_WARN_NONCOMPLIANT, "7041GPE", "261: AI (7041) position 1: Invalid package type 'GPE'" }, /* packagetype */ + /*614*/ { "[7041]HPE", ZINT_WARN_NONCOMPLIANT, "7041HPE", "261: AI (7041) position 1: Invalid package type 'HPE'" }, /* packagetype */ + /*615*/ { "[7041]IPE", ZINT_WARN_NONCOMPLIANT, "7041IPE", "261: AI (7041) position 1: Invalid package type 'IPE'" }, /* packagetype */ + /*616*/ { "[7041]JAB", ZINT_WARN_NONCOMPLIANT, "7041JAB", "261: AI (7041) position 1: Invalid package type 'JAB'" }, /* packagetype */ + /*617*/ { "[7041]KAB", ZINT_WARN_NONCOMPLIANT, "7041KAB", "261: AI (7041) position 1: Invalid package type 'KAB'" }, /* packagetype */ + /*618*/ { "[7041]LAA", ZINT_WARN_NONCOMPLIANT, "7041LAA", "261: AI (7041) position 1: Invalid package type 'LAA'" }, /* packagetype */ + /*619*/ { "[7041]LAB", 0, "7041LAB", "" }, /* packagetype */ + /*620*/ { "[7041]MPE", 0, "7041MPE", "" }, /* packagetype */ + /*621*/ { "[7041]MPF", ZINT_WARN_NONCOMPLIANT, "7041MPF", "261: AI (7041) position 1: Invalid package type 'MPF'" }, /* packagetype */ + /*622*/ { "[7041]OPE", 0, "7041OPE", "" }, /* packagetype */ + /*623*/ { "[7041]QAE", ZINT_WARN_NONCOMPLIANT, "7041QAE", "261: AI (7041) position 1: Invalid package type 'QAE'" }, /* packagetype */ + /*624*/ { "[7041]PAD", ZINT_WARN_NONCOMPLIANT, "7041PAD", "261: AI (7041) position 1: Invalid package type 'PAD'" }, /* packagetype */ + /*625*/ { "[7041]PAE", 0, "7041PAE", "" }, /* packagetype */ + /*626*/ { "[7041]PLP", 0, "7041PLP", "" }, /* packagetype */ + /*627*/ { "[7041]POP", 0, "7041POP", "" }, /* packagetype */ + /*628*/ { "[7041]PPE", 0, "7041PPE", "" }, /* packagetype */ + /*629*/ { "[7041]PUE", 0, "7041PUE", "" }, /* packagetype */ + /*630*/ { "[7041]QUE", ZINT_WARN_NONCOMPLIANT, "7041QUE", "261: AI (7041) position 1: Invalid package type 'QUE'" }, /* packagetype */ + /*631*/ { "[7041]RB0", ZINT_WARN_NONCOMPLIANT, "7041RB0", "261: AI (7041) position 1: Invalid package type 'RB0'" }, /* packagetype */ + /*632*/ { "[7041]RB1", 0, "7041RB1", "" }, /* packagetype */ + /*633*/ { "[7041]RB3", 0, "7041RB3", "" }, /* packagetype */ + /*634*/ { "[7041]RB4", ZINT_WARN_NONCOMPLIANT, "7041RB4", "261: AI (7041) position 1: Invalid package type 'RB4'" }, /* packagetype */ + /*635*/ { "[7041]RBA", ZINT_WARN_NONCOMPLIANT, "7041RBA", "261: AI (7041) position 1: Invalid package type 'RBA'" }, /* packagetype */ + /*636*/ { "[7041]RCB", 0, "7041RCB", "" }, /* packagetype */ + /*637*/ { "[7041]SEC", 0, "7041SEC", "" }, /* packagetype */ + /*638*/ { "[7041]STL", 0, "7041STL", "" }, /* packagetype */ + /*639*/ { "[7041]STM", ZINT_WARN_NONCOMPLIANT, "7041STM", "261: AI (7041) position 1: Invalid package type 'STM'" }, /* packagetype */ + /*640*/ { "[7041]TEV", 0, "7041TEV", "" }, /* packagetype */ + /*641*/ { "[7041]TTE", 0, "7041TTE", "" }, /* packagetype */ + /*642*/ { "[7041]TTF", ZINT_WARN_NONCOMPLIANT, "7041TTF", "261: AI (7041) position 1: Invalid package type 'TTF'" }, /* packagetype */ + /*643*/ { "[7041]TWE", 0, "7041TWE", "" }, /* packagetype */ + /*644*/ { "[7041]X10", ZINT_WARN_NONCOMPLIANT, "7041X10", "261: AI (7041) position 1: Invalid package type 'X10'" }, /* packagetype */ + /*645*/ { "[7041]X11", 0, "7041X11", "" }, /* packagetype */ + /*646*/ { "[7041]X13", ZINT_WARN_NONCOMPLIANT, "7041X13", "261: AI (7041) position 1: Invalid package type 'X13'" }, /* packagetype */ + /*647*/ { "[7041]X14", ZINT_WARN_NONCOMPLIANT, "7041X14", "261: AI (7041) position 1: Invalid package type 'X14'" }, /* packagetype */ + /*648*/ { "[7041]X15", 0, "7041X15", "" }, /* packagetype */ + /*649*/ { "[7041]X19", 0, "7041X19", "" }, /* packagetype */ + /*650*/ { "[7041]X20", 0, "7041X20", "" }, /* packagetype */ + /*651*/ { "[7041]X21", ZINT_WARN_NONCOMPLIANT, "7041X21", "261: AI (7041) position 1: Invalid package type 'X21'" }, /* packagetype */ + /*652*/ { "[7041]___", ZINT_WARN_NONCOMPLIANT, "7041___", "261: AI (7041) position 1: Invalid package type '___'" }, /* packagetype */ }; const int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -2161,6 +2162,8 @@ static void test_gs1_lint(const testCtx *const p_ctx) { int reduced_length = 0; /* Suppress clang -fsanitize=memory false positive */ char reduced[1024] = {0}; /* Suppress clang -fsanitize=memory false positive */ + char escaped[1024]; + char escaped2[1024]; testStartSymbol("test_gs1_lint", &symbol); @@ -2177,7 +2180,9 @@ static void test_gs1_lint(const testCtx *const p_ctx) { assert_equal(ret, data[i].ret, "i:%d ret %d != %d (length %d \"%s\") (%s)\n", i, ret, data[i].ret, length, data[i].data, symbol->errtxt); if (ret < ZINT_ERROR) { - assert_zero(strcmp(reduced, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, reduced, data[i].expected); + assert_zero(strcmp(reduced, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", + i, testUtilEscape(reduced, reduced_length, escaped, ARRAY_SIZE(escaped)), + testUtilEscape(data[i].expected, (int) strlen(data[i].expected), escaped2, ARRAY_SIZE(escaped2))); assert_equal(reduced_length, (int) strlen(reduced), "i:%d reduced_length %d != strlen %d\n", i, reduced_length, (int) strlen(reduced)); }