test_dmatrix.c 599 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219
  1. /*
  2. libzint - the open source barcode library
  3. Copyright (C) 2019-2024 Robin Stuart <rstuart114@gmail.com>
  4. Redistribution and use in source and binary forms, with or without
  5. modification, are permitted provided that the following conditions
  6. are met:
  7. 1. Redistributions of source code must retain the above copyright
  8. notice, this list of conditions and the following disclaimer.
  9. 2. Redistributions in binary form must reproduce the above copyright
  10. notice, this list of conditions and the following disclaimer in the
  11. documentation and/or other materials provided with the distribution.
  12. 3. Neither the name of the project nor the names of its contributors
  13. may be used to endorse or promote products derived from this software
  14. without specific prior written permission.
  15. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  16. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  17. IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  18. ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
  19. FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20. DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  21. OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  22. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  23. LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  24. OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  25. SUCH DAMAGE.
  26. */
  27. /* SPDX-License-Identifier: BSD-3-Clause */
  28. #include "testcommon.h"
  29. #include "../gs1.h"
  30. static void test_large(const testCtx *const p_ctx) {
  31. int debug = p_ctx->debug;
  32. struct item {
  33. int symbology;
  34. int option_2;
  35. struct zint_structapp structapp;
  36. char *pattern;
  37. int length;
  38. int ret;
  39. int expected_rows;
  40. int expected_width;
  41. char *expected_errtxt;
  42. char *expected_errtxt2;
  43. char *comment;
  44. };
  45. /* ISO/IEC 16022:2006 Table 7 and ISO/IEC 21471:2020 (DMRE) Table 7 */
  46. /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
  47. static const struct item data[] = {
  48. /* 0*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 3116, 0, 144, 144, "", "", "" },
  49. /* 1*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 3117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 3117 too long (maximum 3116)", "", "" },
  50. /* 2*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "1", 10922, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 10922 too long (maximum 3116)", "", "Minimal encoding can handle max (10921 + 1) * 6 = 65532 < 65536 (2*16) due to sizeof(previous)" },
  51. /* 3*/ { BARCODE_DATAMATRIX, -1, { 1, 2, "001001" }, "1", 3108, 0, 144, 144, "", "", "Structured Append 4 codewords overhead == 8 digits" },
  52. /* 4*/ { BARCODE_DATAMATRIX, -1, { 1, 2, "001001" }, "1", 3109, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
  53. /* 5*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "A", 2335, 0, 144, 144, "", "", "" },
  54. /* 6*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "A", 2336, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 523: Input too long, requires 1560 codewords (maximum 1558)", "" },
  55. /* 7*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\200", 1556, 0, 144, 144, "", "", "Spec says 1555 but 1556 correct as only single byte count of 0 required" },
  56. /* 8*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\200", 1557, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
  57. /* 9*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\001", 1558, 0, 144, 144, "", "", "" },
  58. /* 10*/ { BARCODE_DATAMATRIX, -1, { 0, 0, "" }, "\001", 1559, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
  59. /* 11*/ { BARCODE_HIBC_DM, -1, { 0, 0, "" }, "1", 110, 0, 32, 32, "", "", "" },
  60. /* 12*/ { BARCODE_HIBC_DM, -1, { 0, 0, "" }, "1", 111, ZINT_ERROR_TOO_LONG, 0, 0, "Error 202: Input length 111 too long for HIBC LIC (maximum 110)", "", "" },
  61. /* 13*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "1", 6, 0, 10, 10, "", "", "" },
  62. /* 14*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "1", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
  63. /* 15*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "A", 3, 0, 10, 10, "", "", "" },
  64. /* 16*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "A", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
  65. /* 17*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "\200", 1, 0, 10, 10, "", "", "" },
  66. /* 18*/ { BARCODE_DATAMATRIX, 1, { 0, 0, "" }, "\200", 2, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)", "", "" },
  67. /* 19*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "1", 10, 0, 12, 12, "", "", "" },
  68. /* 20*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "1", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
  69. /* 21*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "A", 6, 0, 12, 12, "", "", "" },
  70. /* 22*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "A", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
  71. /* 23*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "\200", 3, 0, 12, 12, "", "", "" },
  72. /* 24*/ { BARCODE_DATAMATRIX, 2, { 0, 0, "" }, "\200", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 2, requires 6 codewords (maximum 5)", "", "" },
  73. /* 25*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "1", 16, 0, 14, 14, "", "", "" },
  74. /* 26*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "1", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "", "" },
  75. /* 27*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "A", 10, 0, 14, 14, "", "", "" },
  76. /* 28*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "A", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "Error 522: Input too long for Version 3, requires 10 codewords (maximum 8)", "" },
  77. /* 29*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "\200", 6, 0, 14, 14, "", "", "" },
  78. /* 30*/ { BARCODE_DATAMATRIX, 3, { 0, 0, "" }, "\200", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 3, requires 9 codewords (maximum 8)", "", "" },
  79. /* 31*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "1", 24, 0, 16, 16, "", "", "" },
  80. /* 32*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "1", 25, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "", "" },
  81. /* 33*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "A", 16, 0, 16, 16, "", "", "" },
  82. /* 34*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "A", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "Error 522: Input too long for Version 4, requires 14 codewords (maximum 12)", "" },
  83. /* 35*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "\200", 10, 0, 16, 16, "", "", "" },
  84. /* 36*/ { BARCODE_DATAMATRIX, 4, { 0, 0, "" }, "\200", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 4, requires 13 codewords (maximum 12)", "", "" },
  85. /* 37*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "1", 36, 0, 18, 18, "", "", "" },
  86. /* 38*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "1", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", "" },
  87. /* 39*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "A", 25, 0, 18, 18, "", "", "" },
  88. /* 40*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "A", 26, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "Error 522: Input too long for Version 5, requires 20 codewords (maximum 18)", "" },
  89. /* 41*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "\200", 16, 0, 18, 18, "", "", "" },
  90. /* 42*/ { BARCODE_DATAMATRIX, 5, { 0, 0, "" }, "\200", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", "" },
  91. /* 43*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "1", 44, 0, 20, 20, "", "", "" },
  92. /* 44*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "1", 45, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "", "" },
  93. /* 45*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "A", 31, 0, 20, 20, "", "", "" },
  94. /* 46*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "A", 32, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "Error 522: Input too long for Version 6, requires 24 codewords (maximum 22)", "" },
  95. /* 47*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "\200", 20, 0, 20, 20, "", "", "" },
  96. /* 48*/ { BARCODE_DATAMATRIX, 6, { 0, 0, "" }, "\200", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 6, requires 23 codewords (maximum 22)", "", "" },
  97. /* 49*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "1", 60, 0, 22, 22, "", "", "" },
  98. /* 50*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "1", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "", "" },
  99. /* 51*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "A", 43, 0, 22, 22, "", "", "" },
  100. /* 52*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "A", 44, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "Error 522: Input too long for Version 7, requires 32 codewords (maximum 30)", "" },
  101. /* 53*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "\200", 28, 0, 22, 22, "", "", "" },
  102. /* 54*/ { BARCODE_DATAMATRIX, 7, { 0, 0, "" }, "\200", 29, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 7, requires 31 codewords (maximum 30)", "", "" },
  103. /* 55*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "1", 72, 0, 24, 24, "", "", "" },
  104. /* 56*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "1", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "", "" },
  105. /* 57*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "A", 52, 0, 24, 24, "", "", "" },
  106. /* 58*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "A", 53, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "Error 522: Input too long for Version 8, requires 38 codewords (maximum 36)", "" },
  107. /* 59*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "\200", 34, 0, 24, 24, "", "", "" },
  108. /* 60*/ { BARCODE_DATAMATRIX, 8, { 0, 0, "" }, "\200", 35, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 8, requires 37 codewords (maximum 36)", "", "" },
  109. /* 61*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "1", 88, 0, 26, 26, "", "", "" },
  110. /* 62*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "1", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "", "" },
  111. /* 63*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "A", 64, 0, 26, 26, "", "", "" },
  112. /* 64*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "A", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "Error 522: Input too long for Version 9, requires 46 codewords (maximum 44)", "" },
  113. /* 65*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "\200", 42, 0, 26, 26, "", "", "" },
  114. /* 66*/ { BARCODE_DATAMATRIX, 9, { 0, 0, "" }, "\200", 43, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 9, requires 45 codewords (maximum 44)", "", "" },
  115. /* 67*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "1", 124, 0, 32, 32, "", "", "" },
  116. /* 68*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "1", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "", "" },
  117. /* 69*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "A", 91, 0, 32, 32, "", "", "" },
  118. /* 70*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "A", 92, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "Error 522: Input too long for Version 10, requires 64 codewords (maximum 62)", "" },
  119. /* 71*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "\200", 60, 0, 32, 32, "", "", "" },
  120. /* 72*/ { BARCODE_DATAMATRIX, 10, { 0, 0, "" }, "\200", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 10, requires 63 codewords (maximum 62)", "", "" },
  121. /* 73*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "1", 172, 0, 36, 36, "", "", "" },
  122. /* 74*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "1", 173, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "", "" },
  123. /* 75*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "A", 127, 0, 36, 36, "", "", "" },
  124. /* 76*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "A", 128, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "Error 522: Input too long for Version 11, requires 88 codewords (maximum 86)", "" },
  125. /* 77*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "\200", 84, 0, 36, 36, "", "", "" },
  126. /* 78*/ { BARCODE_DATAMATRIX, 11, { 0, 0, "" }, "\200", 85, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 11, requires 87 codewords (maximum 86)", "", "" },
  127. /* 79*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "1", 228, 0, 40, 40, "", "", "" },
  128. /* 80*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "1", 229, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "", "" },
  129. /* 81*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "A", 169, 0, 40, 40, "", "", "" },
  130. /* 82*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "A", 170, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "Error 522: Input too long for Version 12, requires 116 codewords (maximum 114)", "" },
  131. /* 83*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "\200", 112, 0, 40, 40, "", "", "" },
  132. /* 84*/ { BARCODE_DATAMATRIX, 12, { 0, 0, "" }, "\200", 113, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 12, requires 115 codewords (maximum 114)", "", "" },
  133. /* 85*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "1", 288, 0, 44, 44, "", "", "" },
  134. /* 86*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "1", 289, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "", "" },
  135. /* 87*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "A", 214, 0, 44, 44, "", "", "" },
  136. /* 88*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "A", 215, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "Error 522: Input too long for Version 13, requires 146 codewords (maximum 144)", "" },
  137. /* 89*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "\200", 142, 0, 44, 44, "", "", "" },
  138. /* 90*/ { BARCODE_DATAMATRIX, 13, { 0, 0, "" }, "\200", 143, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 13, requires 145 codewords (maximum 144)", "", "" },
  139. /* 91*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "1", 348, 0, 48, 48, "", "", "" },
  140. /* 92*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "1", 349, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "", "" },
  141. /* 93*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "A", 259, 0, 48, 48, "", "", "" },
  142. /* 94*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "A", 260, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "Error 522: Input too long for Version 14, requires 176 codewords (maximum 174)", "" },
  143. /* 95*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "\200", 172, 0, 48, 48, "", "", "" },
  144. /* 96*/ { BARCODE_DATAMATRIX, 14, { 0, 0, "" }, "\200", 173, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 14, requires 175 codewords (maximum 174)", "", "" },
  145. /* 97*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "1", 408, 0, 52, 52, "", "", "" },
  146. /* 98*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "1", 409, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "", "" },
  147. /* 99*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "A", 304, 0, 52, 52, "", "", "" },
  148. /*100*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "A", 305, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "Error 522: Input too long for Version 15, requires 206 codewords (maximum 204)", "" },
  149. /*101*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "\200", 202, 0, 52, 52, "", "", "" },
  150. /*102*/ { BARCODE_DATAMATRIX, 15, { 0, 0, "" }, "\200", 203, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 15, requires 205 codewords (maximum 204)", "", "" },
  151. /*103*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "1", 560, 0, 64, 64, "", "", "" },
  152. /*104*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "1", 561, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "", "" },
  153. /*105*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "A", 418, 0, 64, 64, "", "", "" },
  154. /*106*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "A", 419, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "Error 522: Input too long for Version 16, requires 282 codewords (maximum 280)", "" },
  155. /*107*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "\200", 278, 0, 64, 64, "", "", "Spec says 277 but 278 correct as only single byte count of 0 required" },
  156. /*108*/ { BARCODE_DATAMATRIX, 16, { 0, 0, "" }, "\200", 279, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 16, requires 281 codewords (maximum 280)", "", "" },
  157. /*109*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "1", 736, 0, 72, 72, "", "", "" },
  158. /*110*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "1", 737, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "", "" },
  159. /*111*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "A", 550, 0, 72, 72, "", "", "" },
  160. /*112*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "A", 551, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "Error 522: Input too long for Version 17, requires 370 codewords (maximum 368)", "" },
  161. /*113*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "\200", 366, 0, 72, 72, "", "", "Spec says 365 but 366 correct as only single byte count of 0 required" },
  162. /*114*/ { BARCODE_DATAMATRIX, 17, { 0, 0, "" }, "\200", 367, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 17, requires 369 codewords (maximum 368)", "", "" },
  163. /*115*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "1", 912, 0, 80, 80, "", "", "" },
  164. /*116*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "1", 913, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "", "" },
  165. /*117*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "A", 682, 0, 80, 80, "", "", "" },
  166. /*118*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "A", 683, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "Error 522: Input too long for Version 18, requires 458 codewords (maximum 456)", "" },
  167. /*119*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "\200", 454, 0, 80, 80, "", "", "Spec says 453 but 454 correct as only single byte count of 0 required" },
  168. /*120*/ { BARCODE_DATAMATRIX, 18, { 0, 0, "" }, "\200", 455, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 18, requires 457 codewords (maximum 456)", "", "" },
  169. /*121*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "1", 1152, 0, 88, 88, "", "", "" },
  170. /*122*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "1", 1153, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "", "" },
  171. /*123*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "A", 862, 0, 88, 88, "", "", "" },
  172. /*124*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "A", 863, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "Error 522: Input too long for Version 19, requires 578 codewords (maximum 576)", "" },
  173. /*125*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "\200", 574, 0, 88, 88, "", "", "Spec says 573 but 574 correct as only single byte count of 0 required" },
  174. /*126*/ { BARCODE_DATAMATRIX, 19, { 0, 0, "" }, "\200", 575, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 19, requires 577 codewords (maximum 576)", "", "" },
  175. /*127*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "1", 1392, 0, 96, 96, "", "", "" },
  176. /*128*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "1", 1393, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "", "" },
  177. /*129*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "A", 1042, 0, 96, 96, "", "", "" },
  178. /*130*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "A", 1043, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "Error 522: Input too long for Version 20, requires 698 codewords (maximum 696)", "" },
  179. /*131*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "\200", 694, 0, 96, 96, "", "", "Spec says 693 but 694 correct as only single byte count of 0 required" },
  180. /*132*/ { BARCODE_DATAMATRIX, 20, { 0, 0, "" }, "\200", 695, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 20, requires 697 codewords (maximum 696)", "", "" },
  181. /*133*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "1", 1632, 0, 104, 104, "", "", "" },
  182. /*134*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "1", 1633, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "", "" },
  183. /*135*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "A", 1222, 0, 104, 104, "", "", "" },
  184. /*136*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "A", 1223, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "Error 522: Input too long for Version 21, requires 818 codewords (maximum 816)", "" },
  185. /*137*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "\200", 814, 0, 104, 104, "", "", "Spec says 813 but 814 correct as only single byte count of 0 required" },
  186. /*138*/ { BARCODE_DATAMATRIX, 21, { 0, 0, "" }, "\200", 815, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 21, requires 817 codewords (maximum 816)", "", "" },
  187. /*139*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "1", 2100, 0, 120, 120, "", "", "" },
  188. /*140*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "1", 2101, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "", "" },
  189. /*141*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "A", 1573, 0, 120, 120, "", "", "" },
  190. /*142*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "A", 1574, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "Error 522: Input too long for Version 22, requires 1052 codewords (maximum 1050)", "" },
  191. /*143*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "\200", 1048, 0, 120, 120, "", "", "Spec says 1047 but 1048 correct as only single byte count of 0 required" },
  192. /*144*/ { BARCODE_DATAMATRIX, 22, { 0, 0, "" }, "\200", 1049, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 22, requires 1051 codewords (maximum 1050)", "", "" },
  193. /*145*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "1", 2608, 0, 132, 132, "", "", "" },
  194. /*146*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "1", 2609, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "", "" },
  195. /*147*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "A", 1954, 0, 132, 132, "", "", "" },
  196. /*148*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "A", 1955, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "Error 522: Input too long for Version 23, requires 1306 codewords (maximum 1304)", "" },
  197. /*149*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "\200", 1302, 0, 132, 132, "", "", "Spec says 1301 but 1302 correct as only single byte count of 0 required" },
  198. /*150*/ { BARCODE_DATAMATRIX, 23, { 0, 0, "" }, "\200", 1303, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 23, requires 1305 codewords (maximum 1304)", "", "" },
  199. /*151*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "1", 3116, 0, 144, 144, "", "", "" },
  200. /*152*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "1", 3117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 719: Input length 3117 too long (maximum 3116)", "", "" },
  201. /*153*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "A", 2335, 0, 144, 144, "", "", "" },
  202. /*154*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "A", 2336, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 522: Input too long for Version 24, requires 1560 codewords (maximum 1558)", "" },
  203. /*155*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "\200", 1556, 0, 144, 144, "", "", "Spec says 1555 but 1556 correct as only single byte count of 0 required" },
  204. /*156*/ { BARCODE_DATAMATRIX, 24, { 0, 0, "" }, "\200", 1557, ZINT_ERROR_TOO_LONG, 0, 0, "Error 729: Input too long, requires too many codewords (maximum 1558)", "Error 520: Input too long, requires too many codewords (maximum 1558)", "" },
  205. /*157*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "1", 10, 0, 8, 18, "", "", "" },
  206. /*158*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "1", 11, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
  207. /*159*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "A", 6, 0, 8, 18, "", "", "" },
  208. /*160*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "A", 7, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
  209. /*161*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "\200", 3, 0, 8, 18, "", "", "" },
  210. /*162*/ { BARCODE_DATAMATRIX, 25, { 0, 0, "" }, "\200", 4, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 25, requires 6 codewords (maximum 5)", "", "" },
  211. /*163*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "1", 20, 0, 8, 32, "", "", "" },
  212. /*164*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "1", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "", "" },
  213. /*165*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "A", 13, 0, 8, 32, "", "", "" },
  214. /*166*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "A", 14, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "Error 522: Input too long for Version 26, requires 12 codewords (maximum 10)", "" },
  215. /*167*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "\200", 8, 0, 8, 32, "", "", "" },
  216. /*168*/ { BARCODE_DATAMATRIX, 26, { 0, 0, "" }, "\200", 9, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 26, requires 11 codewords (maximum 10)", "", "" },
  217. /*169*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "1", 32, 0, 12, 26, "", "", "" },
  218. /*170*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "1", 33, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "", "" },
  219. /*171*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "A", 22, 0, 12, 26, "", "", "" },
  220. /*172*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "A", 23, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "Error 522: Input too long for Version 27, requires 18 codewords (maximum 16)", "" },
  221. /*173*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "\200", 14, 0, 12, 26, "", "", "" },
  222. /*174*/ { BARCODE_DATAMATRIX, 27, { 0, 0, "" }, "\200", 15, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 27, requires 17 codewords (maximum 16)", "", "" },
  223. /*175*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "1", 44, 0, 12, 36, "", "", "" },
  224. /*176*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "1", 45, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "", "" },
  225. /*177*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "A", 31, 0, 12, 36, "", "", "" },
  226. /*178*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "A", 32, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "Error 522: Input too long for Version 28, requires 24 codewords (maximum 22)", "" },
  227. /*179*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "\200", 20, 0, 12, 36, "", "", "" },
  228. /*180*/ { BARCODE_DATAMATRIX, 28, { 0, 0, "" }, "\200", 21, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 28, requires 23 codewords (maximum 22)", "", "" },
  229. /*181*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "1", 64, 0, 16, 36, "", "", "" },
  230. /*182*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "1", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "", "" },
  231. /*183*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "A", 46, 0, 16, 36, "", "", "" },
  232. /*184*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "A", 47, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "Error 522: Input too long for Version 29, requires 34 codewords (maximum 32)", "" },
  233. /*185*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "\200", 30, 0, 16, 36, "", "", "" },
  234. /*186*/ { BARCODE_DATAMATRIX, 29, { 0, 0, "" }, "\200", 31, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 29, requires 33 codewords (maximum 32)", "", "" },
  235. /*187*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "1", 98, 0, 16, 48, "", "", "" },
  236. /*188*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "1", 99, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
  237. /*189*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "A", 72, 0, 16, 48, "", "", "" },
  238. /*190*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "A", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
  239. /*191*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "\200", 47, 0, 16, 48, "", "", "" },
  240. /*192*/ { BARCODE_DATAMATRIX, 30, { 0, 0, "" }, "\200", 48, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 30, requires 50 codewords (maximum 49)", "", "" },
  241. /*193*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "1", 36, 0, 8, 48, "", "", "" },
  242. /*194*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "1", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "", "" },
  243. /*195*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "A", 25, 0, 8, 48, "", "", "" },
  244. /*196*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "A", 26, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "Error 522: Input too long for Version 31, requires 20 codewords (maximum 18)", "" },
  245. /*197*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "\200", 16, 0, 8, 48, "", "", "" },
  246. /*198*/ { BARCODE_DATAMATRIX, 31, { 0, 0, "" }, "\200", 17, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 31, requires 19 codewords (maximum 18)", "", "" },
  247. /*199*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "1", 48, 0, 8, 64, "", "", "" },
  248. /*200*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "1", 49, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "", "" },
  249. /*201*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "A", 34, 0, 8, 64, "", "", "" },
  250. /*202*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "A", 35, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "Error 522: Input too long for Version 32, requires 26 codewords (maximum 24)", "" },
  251. /*203*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "\200", 22, 0, 8, 64, "", "", "" },
  252. /*204*/ { BARCODE_DATAMATRIX, 32, { 0, 0, "" }, "\200", 23, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 32, requires 25 codewords (maximum 24)", "", "" },
  253. /*205*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "1", 64, 0, 8, 80, "", "", "" },
  254. /*206*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "1", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "", "" },
  255. /*207*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "A", 46, 0, 8, 80, "", "", "" },
  256. /*208*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "A", 47, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "Error 522: Input too long for Version 33, requires 34 codewords (maximum 32)", "" },
  257. /*209*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "\200", 30, 0, 8, 80, "", "", "" },
  258. /*210*/ { BARCODE_DATAMATRIX, 33, { 0, 0, "" }, "\200", 31, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 33, requires 33 codewords (maximum 32)", "", "" },
  259. /*211*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "1", 76, 0, 8, 96, "", "", "" },
  260. /*212*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "1", 77, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "", "" },
  261. /*213*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "A", 55, 0, 8, 96, "", "", "" },
  262. /*214*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "A", 56, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "Error 522: Input too long for Version 34, requires 40 codewords (maximum 38)", "" },
  263. /*215*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "\200", 36, 0, 8, 96, "", "", "" },
  264. /*216*/ { BARCODE_DATAMATRIX, 34, { 0, 0, "" }, "\200", 37, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 34, requires 39 codewords (maximum 38)", "", "" },
  265. /*217*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "1", 98, 0, 8, 120, "", "", "" },
  266. /*218*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "1", 99, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
  267. /*219*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "A", 72, 0, 8, 120, "", "", "" },
  268. /*220*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "A", 73, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
  269. /*221*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "\200", 47, 0, 8, 120, "", "", "" },
  270. /*222*/ { BARCODE_DATAMATRIX, 35, { 0, 0, "" }, "\200", 48, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 35, requires 50 codewords (maximum 49)", "", "" },
  271. /*223*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "1", 126, 0, 8, 144, "", "", "" },
  272. /*224*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "1", 127, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
  273. /*225*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "A", 93, 0, 8, 144, "", "", "" },
  274. /*226*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "A", 94, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
  275. /*227*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "\200", 61, 0, 8, 144, "", "", "" },
  276. /*228*/ { BARCODE_DATAMATRIX, 36, { 0, 0, "" }, "\200", 62, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 36, requires 64 codewords (maximum 63)", "", "" },
  277. /*229*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "1", 86, 0, 12, 64, "", "", "" },
  278. /*230*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "1", 87, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
  279. /*231*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "A", 63, 0, 12, 64, "", "", "" },
  280. /*232*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "A", 64, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
  281. /*233*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "\200", 41, 0, 12, 64, "", "", "" },
  282. /*234*/ { BARCODE_DATAMATRIX, 37, { 0, 0, "" }, "\200", 42, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 37, requires 44 codewords (maximum 43)", "", "" },
  283. /*235*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "1", 128, 0, 12, 88, "", "", "" },
  284. /*236*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "1", 129, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "", "" },
  285. /*237*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "A", 94, 0, 12, 88, "", "", "" },
  286. /*238*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "A", 95, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "Error 522: Input too long for Version 38, requires 66 codewords (maximum 64)", "" },
  287. /*239*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "\200", 62, 0, 12, 88, "", "", "" },
  288. /*240*/ { BARCODE_DATAMATRIX, 38, { 0, 0, "" }, "\200", 63, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 38, requires 65 codewords (maximum 64)", "", "" },
  289. /*241*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "1", 124, 0, 16, 64, "", "", "" },
  290. /*242*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "1", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "", "" },
  291. /*243*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "A", 91, 0, 16, 64, "", "", "" },
  292. /*244*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "A", 92, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "Error 522: Input too long for Version 39, requires 64 codewords (maximum 62)", "" },
  293. /*245*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "\200", 60, 0, 16, 64, "", "", "" },
  294. /*246*/ { BARCODE_DATAMATRIX, 39, { 0, 0, "" }, "\200", 61, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 39, requires 63 codewords (maximum 62)", "", "" },
  295. /*247*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "1", 88, 0, 20, 36, "", "", "" },
  296. /*248*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "1", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "", "" },
  297. /*249*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "A", 64, 0, 20, 36, "", "", "" },
  298. /*250*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "A", 65, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "Error 522: Input too long for Version 40, requires 46 codewords (maximum 44)", "" },
  299. /*251*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "\200", 42, 0, 20, 36, "", "", "" },
  300. /*252*/ { BARCODE_DATAMATRIX, 40, { 0, 0, "" }, "\200", 43, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 40, requires 45 codewords (maximum 44)", "", "" },
  301. /*253*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "1", 112, 0, 20, 44, "", "", "" },
  302. /*254*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "1", 113, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "", "" },
  303. /*255*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "A", 82, 0, 20, 44, "", "", "" },
  304. /*256*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "A", 83, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "Error 522: Input too long for Version 41, requires 58 codewords (maximum 56)", "" },
  305. /*257*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "\200", 54, 0, 20, 44, "", "", "" },
  306. /*258*/ { BARCODE_DATAMATRIX, 41, { 0, 0, "" }, "\200", 55, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 41, requires 57 codewords (maximum 56)", "", "" },
  307. /*259*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "1", 168, 0, 20, 64, "", "", "Spec says 186 but typo" },
  308. /*260*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "1", 169, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "", "" },
  309. /*261*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "A", 124, 0, 20, 64, "", "", "" },
  310. /*262*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "A", 125, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "Error 522: Input too long for Version 42, requires 86 codewords (maximum 84)", "" },
  311. /*263*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "\200", 82, 0, 20, 64, "", "", "" },
  312. /*264*/ { BARCODE_DATAMATRIX, 42, { 0, 0, "" }, "\200", 83, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 42, requires 85 codewords (maximum 84)", "", "" },
  313. /*265*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "1", 144, 0, 22, 48, "", "", "" },
  314. /*266*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "1", 145, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "", "" },
  315. /*267*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "A", 106, 0, 22, 48, "", "", "" },
  316. /*268*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "A", 107, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "Error 522: Input too long for Version 43, requires 74 codewords (maximum 72)", "" },
  317. /*269*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "\200", 70, 0, 22, 48, "", "", "" },
  318. /*270*/ { BARCODE_DATAMATRIX, 43, { 0, 0, "" }, "\200", 71, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 43, requires 73 codewords (maximum 72)", "", "" },
  319. /*271*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "1", 160, 0, 24, 48, "", "", "" },
  320. /*272*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "1", 161, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "", "" },
  321. /*273*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "A", 118, 0, 24, 48, "", "", "" },
  322. /*274*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "A", 119, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "Error 522: Input too long for Version 44, requires 82 codewords (maximum 80)", "" },
  323. /*275*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "\200", 78, 0, 24, 48, "", "", "" },
  324. /*276*/ { BARCODE_DATAMATRIX, 44, { 0, 0, "" }, "\200", 79, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 44, requires 81 codewords (maximum 80)", "", "" },
  325. /*277*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "1", 216, 0, 24, 64, "", "", "" },
  326. /*278*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "1", 217, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "", "" },
  327. /*279*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "A", 160, 0, 24, 64, "", "", "" },
  328. /*280*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "A", 161, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "Error 522: Input too long for Version 45, requires 110 codewords (maximum 108)", "" },
  329. /*281*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "\200", 106, 0, 24, 64, "", "", "" },
  330. /*282*/ { BARCODE_DATAMATRIX, 45, { 0, 0, "" }, "\200", 107, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 45, requires 109 codewords (maximum 108)", "", "" },
  331. /*283*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "1", 140, 0, 26, 40, "", "", "" },
  332. /*284*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "1", 141, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "", "" },
  333. /*285*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "A", 103, 0, 26, 40, "", "", "" },
  334. /*286*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "A", 104, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "Error 522: Input too long for Version 46, requires 72 codewords (maximum 70)", "" },
  335. /*287*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "\200", 68, 0, 26, 40, "", "", "" },
  336. /*288*/ { BARCODE_DATAMATRIX, 46, { 0, 0, "" }, "\200", 69, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 46, requires 71 codewords (maximum 70)", "", "" },
  337. /*289*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "1", 180, 0, 26, 48, "", "", "" },
  338. /*290*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "1", 181, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "", "" },
  339. /*291*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "A", 133, 0, 26, 48, "", "", "" },
  340. /*292*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "A", 134, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "Error 522: Input too long for Version 47, requires 92 codewords (maximum 90)", "" },
  341. /*293*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "\200", 88, 0, 26, 48, "", "", "" },
  342. /*294*/ { BARCODE_DATAMATRIX, 47, { 0, 0, "" }, "\200", 89, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 47, requires 91 codewords (maximum 90)", "", "" },
  343. /*295*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "1", 236, 0, 26, 64, "", "", "" },
  344. /*296*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "1", 237, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "", "" },
  345. /*297*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "A", 175, 0, 26, 64, "", "", "" },
  346. /*298*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "A", 176, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "Error 522: Input too long for Version 48, requires 120 codewords (maximum 118)", "" },
  347. /*299*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "\200", 116, 0, 26, 64, "", "", "" },
  348. /*300*/ { BARCODE_DATAMATRIX, 48, { 0, 0, "" }, "\200", 117, ZINT_ERROR_TOO_LONG, 0, 0, "Error 522: Input too long for Version 48, requires 119 codewords (maximum 118)", "", "" },
  349. };
  350. const int data_size = ARRAY_SIZE(data);
  351. int i, length, ret;
  352. struct zint_symbol *symbol = NULL;
  353. char data_buf[ZINT_MAX_DATA_LEN];
  354. char escaped[64];
  355. testStartSymbol("test_large", &symbol);
  356. for (i = 0; i < data_size; i++) {
  357. if (testContinue(p_ctx, i)) continue;
  358. symbol = ZBarcode_Create();
  359. assert_nonnull(symbol, "Symbol not created\n");
  360. testUtilStrCpyRepeat(data_buf, data[i].pattern, data[i].length);
  361. assert_equal(data[i].length, (int) strlen(data_buf), "i:%d length %d != strlen(data_buf) %d\n", i, data[i].length, (int) strlen(data_buf));
  362. length = testUtilSetSymbol(symbol, data[i].symbology, -1 /*input_mode*/, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, -1 /*output_options*/, data_buf, data[i].length, debug);
  363. if (data[i].structapp.count) {
  364. symbol->structapp = data[i].structapp;
  365. }
  366. ret = ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
  367. if (p_ctx->generate) {
  368. char errtxt[sizeof(symbol->errtxt)];
  369. strcpy(errtxt, symbol->errtxt);
  370. printf(" /*%3d*/ { %s, %d, { %d, %d, \"%s\" }, \"%s\", %d, %s, %d, %d, \"%s\",",
  371. i, testUtilBarcodeName(data[i].symbology), data[i].option_2,
  372. data[i].structapp.index, data[i].structapp.count, data[i].structapp.id,
  373. testUtilEscape(data[i].pattern, (int) strlen(data[i].pattern), escaped, sizeof(escaped)), data[i].length,
  374. testUtilErrorName(ret), symbol->rows, symbol->width, errtxt);
  375. symbol->input_mode |= FAST_MODE;
  376. (void) ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
  377. printf(" \"%s\", \"%s\" },\n", strcmp(errtxt, symbol->errtxt) != 0 ? symbol->errtxt : "", data[i].comment);
  378. } else {
  379. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  380. assert_equal(symbol->errtxt[0] == '\0', ret == 0, "i:%d symbol->errtxt not %s (%s)\n", i, ret ? "set" : "empty", symbol->errtxt);
  381. assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
  382. if (ret < ZINT_ERROR) {
  383. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
  384. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
  385. }
  386. symbol->input_mode |= FAST_MODE;
  387. ret = ZBarcode_Encode(symbol, (unsigned char *) data_buf, length);
  388. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  389. assert_equal(symbol->errtxt[0] == '\0', ret == 0, "i:%d symbol->errtxt not %s (%s)\n", i, ret ? "set" : "empty", symbol->errtxt);
  390. if (ret < ZINT_ERROR) {
  391. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
  392. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
  393. } else {
  394. if (data[i].expected_errtxt2[0]) {
  395. assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt2), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt2);
  396. } else {
  397. assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected_errtxt);
  398. }
  399. }
  400. }
  401. ZBarcode_Delete(symbol);
  402. }
  403. testFinish();
  404. }
  405. /* Note need ZINT_SANITIZE set for these */
  406. static void test_buffer(const testCtx *const p_ctx) {
  407. int debug = p_ctx->debug;
  408. struct item {
  409. int eci;
  410. int input_mode;
  411. int output_options;
  412. char *data;
  413. int ret;
  414. char *comment;
  415. };
  416. /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
  417. static const struct item data[] = {
  418. /* 0*/ { 16383, UNICODE_MODE, READER_INIT, "1", 0, "" },
  419. /* 1*/ { 3, UNICODE_MODE, 0, "000106j 05 Galeria A Nação0000000000", 0, "From Okapi, consecutive use of upper shift; #176" },
  420. };
  421. const int data_size = ARRAY_SIZE(data);
  422. int i, length, ret;
  423. struct zint_symbol *symbol = NULL;
  424. testStartSymbol("test_buffer", &symbol);
  425. for (i = 0; i < data_size; i++) {
  426. if (testContinue(p_ctx, i)) continue;
  427. symbol = ZBarcode_Create();
  428. assert_nonnull(symbol, "Symbol not created\n");
  429. length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, -1, -1, data[i].output_options, data[i].data, -1, debug);
  430. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  431. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d\n", i, ret, data[i].ret);
  432. ZBarcode_Delete(symbol);
  433. }
  434. testFinish();
  435. }
  436. static void test_options(const testCtx *const p_ctx) {
  437. int debug = p_ctx->debug;
  438. struct item {
  439. int symbology;
  440. int input_mode;
  441. int option_1;
  442. int option_2;
  443. int option_3;
  444. int output_options;
  445. struct zint_structapp structapp;
  446. char *data;
  447. int ret;
  448. int expected_rows;
  449. int expected_width;
  450. const char *expected_errtxt;
  451. };
  452. /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
  453. static const struct item data[] = {
  454. /* 0*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" },
  455. /* 1*/ { BARCODE_DATAMATRIX, -1, 2, -1, -1, -1, { 0, 0, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 524: Older Data Matrix standards are no longer supported" },
  456. /* 2*/ { BARCODE_DATAMATRIX, -1, -1, 1, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" },
  457. /* 3*/ { BARCODE_DATAMATRIX, -1, -1, 2, -1, -1, { 0, 0, "" }, "1", 0, 12, 12, "" },
  458. /* 4*/ { BARCODE_DATAMATRIX, -1, -1, 48, -1, -1, { 0, 0, "" }, "1", 0, 26, 64, "" },
  459. /* 5*/ { BARCODE_DATAMATRIX, -1, -1, 49, -1, -1, { 0, 0, "" }, "1", 0, 10, 10, "" }, /* Ignored */
  460. /* 6*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____", 0, 12, 12, "" }, /* 4 data */
  461. /* 7*/ { BARCODE_DATAMATRIX, -1, -1, 1, -1, -1, { 0, 0, "" }, "____", ZINT_ERROR_TOO_LONG, -1, -1, "Error 522: Input too long for Version 1, requires 4 codewords (maximum 3)" },
  462. /* 8*/ { BARCODE_DATAMATRIX, -1, -1, 25, -1, -1, { 0, 0, "" }, "____", 0, 8, 18, "" },
  463. /* 9*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" }, /* 10 data */
  464. /* 10*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" },
  465. /* 11*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE | DM_ISO_144, -1, { 0, 0, "" }, "__________", 0, 8, 32, "" },
  466. /* 12*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________", 0, 16, 16, "" },
  467. /* 13*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE | DM_ISO_144, -1, { 0, 0, "" }, "__________", 0, 16, 16, "" },
  468. /* 14*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________", 0, 12, 26, "" }, /* 15 data */
  469. /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________", 0, 12, 26, "" },
  470. /* 16*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________", 0, 18, 18, "" },
  471. /* 17*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________", 0, 18, 18, "" }, /* 18 data */
  472. /* 18*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________", 0, 20, 20, "" }, /* 19 data */
  473. /* 19*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________", 0, 20, 20, "" }, /* 21 data */
  474. /* 20*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________", 0, 22, 22, "" }, /* 23 data */
  475. /* 21*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________", 0, 8, 64, "" },
  476. /* 22*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________", 0, 22, 22, "" },
  477. /* 23*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________", 0, 16, 36, "" }, /* 31 data */
  478. /* 24*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________", 0, 16, 36, "" },
  479. /* 25*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________", 0, 24, 24, "" },
  480. /* 26*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________", 0, 26, 26, "" }, /* 37 data */
  481. /* 27*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_____________________________________", 0, 8, 96, "" },
  482. /* 28*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_____________________________________", 0, 26, 26, "" },
  483. /* 29*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________", 0, 26, 26, "" }, /* 39 data */
  484. /* 30*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________", 0, 12, 64, "" },
  485. /* 31*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________", 0, 26, 26, "" },
  486. /* 32*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________________________________", 0, 26, 26, "" }, /* 43 data */
  487. /* 33*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "___________________________________________", 0, 12, 64, "" },
  488. /* 34*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "___________________________________________", 0, 26, 26, "" },
  489. /* 35*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____________________________________________", 0, 26, 26, "" }, /* 44 data */
  490. /* 36*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________________", 0, 16, 48, "" }, /* 45 data */
  491. /* 37*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_____________________________________________", 0, 16, 48, "" },
  492. /* 38*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_____________________________________________", 0, 32, 32, "" },
  493. /* 39*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_________________________________________________", 0, 16, 48, "" }, /* 49 data */
  494. /* 40*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_________________________________________________", 0, 16, 48, "" },
  495. /* 41*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_________________________________________________", 0, 32, 32, "" },
  496. /* 42*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________________________________________", 0, 32, 32, "" }, /* 50 data */
  497. /* 43*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________________________________________________", 0, 20, 44, "" },
  498. /* 44*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________________________________________________", 0, 32, 32, "" },
  499. /* 45*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 32, 32, "" }, /* 51 data */
  500. /* 46*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 20, 44, "" },
  501. /* 47*/ { BARCODE_DATAMATRIX, -1, -1, -1, 9999, -1, { 0, 0, "" }, "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTU", 0, 32, 32, "" }, /* Ignored */
  502. /* 48*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_____________________________________________________________", 0, 32, 32, "" }, /* 61 data */
  503. /* 49*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________", 0, 32, 32, "" }, /* 62 data */
  504. /* 50*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 36, 36, "" }, /* 63 data */
  505. /* 51*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 8, 144, "" },
  506. /* 52*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________________________________", 0, 36, 36, "" },
  507. /* 53*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "________________________________________________________________", 0, 36, 36, "" }, /* 64 data */
  508. /* 54*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "________________________________________________________________", 0, 12, 88, "" },
  509. /* 55*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "________________________________________________________________", 0, 36, 36, "" },
  510. /* 56*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 36, 36, "" }, /* 65 data */
  511. /* 57*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 26, 40, "" },
  512. /* 58*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_________________________________________________________________", 0, 36, 36, "" },
  513. /* 59*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 36, 36, "" }, /* 70 data */
  514. /* 60*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 26, 40, "" },
  515. /* 61*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "______________________________________________________________________", 0, 36, 36, "" },
  516. /* 62*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 36, 36, "" }, /* 71 data */
  517. /* 63*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 22, 48, "" },
  518. /* 64*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "_______________________________________________________________________", 0, 36, 36, "" },
  519. /* 65*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 36, 36, "" }, /* 80 data */
  520. /* 66*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 24, 48, "" },
  521. /* 67*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "________________________________________________________________________________", 0, 36, 36, "" },
  522. /* 68*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 36, 36, "" }, /* 84 data */
  523. /* 69*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 20, 64, "" },
  524. /* 70*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "____________________________________________________________________________________", 0, 36, 36, "" },
  525. /* 71*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 40, 40, "" }, /* 90 data */
  526. /* 72*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 26, 48, "" },
  527. /* 73*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "__________________________________________________________________________________________", 0, 40, 40, "" },
  528. /* 74*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 40, 40, "" }, /* 91 data */
  529. /* 75*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 24, 64, "" },
  530. /* 76*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "___________________________________________________________________________________________", 0, 40, 40, "" },
  531. /* 77*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 44, 44, "" }, /* 118 data */
  532. /* 78*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_DMRE, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 26, 64, "" }, /* 118 data */
  533. /* 79*/ { BARCODE_DATAMATRIX, -1, -1, -1, DM_SQUARE, -1, { 0, 0, "" }, "______________________________________________________________________________________________________________________", 0, 44, 44, "" }, /* 118 data */
  534. /* 80*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, { 0, 0, "" }, "[90]12", 0, 10, 10, "" },
  535. /* 81*/ { BARCODE_DATAMATRIX, GS1_MODE | GS1PARENS_MODE, -1, -1, -1, -1, { 0, 0, "" }, "(90)12", 0, 10, 10, "" },
  536. /* 82*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 2, "" }, "1", 0, 12, 12, "" },
  537. /* 83*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 16, 16, "" }, "1", 0, 12, 12, "" },
  538. /* 84*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 1, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 720: Structured Append count '1' out of range (2 to 16)" },
  539. /* 85*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 1, 17, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 720: Structured Append count '17' out of range (2 to 16)" },
  540. /* 86*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 0, 16, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 721: Structured Append index '0' out of range (1 to count 16)" },
  541. /* 87*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 17, 16, "" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 721: Structured Append index '17' out of range (1 to count 16)" },
  542. /* 88*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1001" }, "1", 0, 12, 12, "" },
  543. /* 89*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "A" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 723: Invalid Structured Append ID (digits only)" },
  544. /* 90*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "0" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 724: Structured Append ID1 '000' and ID2 '000' out of range (001 to 254) (ID \"000000\")" },
  545. /* 91*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 725: Structured Append ID1 '000' out of range (001 to 254) (ID \"000001\")" },
  546. /* 92*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1000" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 726: Structured Append ID2 '000' out of range (001 to 254) (ID \"001000\")" },
  547. /* 93*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "001255" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 726: Structured Append ID2 '255' out of range (001 to 254) (ID \"001255\")" },
  548. /* 94*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "255001" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 725: Structured Append ID1 '255' out of range (001 to 254) (ID \"255001\")" },
  549. /* 95*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "255255" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 724: Structured Append ID1 '255' and ID2 '255' out of range (001 to 254) (ID \"255255\")" },
  550. /* 96*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, { 2, 3, "1234567" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 722: Structured Append ID length 7 too long (6 digit maximum)" },
  551. /* 97*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, READER_INIT, { 2, 3, "1001" }, "1", ZINT_ERROR_INVALID_OPTION, -1, -1, "Error 727: Cannot have Structured Append and Reader Initialisation at the same time" },
  552. /* 98*/ { BARCODE_DATAMATRIX, ESCAPE_MODE, -1, -1, -1, -1, { 2, 3, "1001" }, "[)>\\R05\\GA\\R\\E", 0, 12, 26, "" }, /* Macro05/06 ignored if have Structured Append TODO: error/warning */
  553. /* 99*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, { 0, 0, "" }, "1234,67", ZINT_ERROR_INVALID_DATA, -1, -1, "Error 203: Invalid character at position 5 in input (alphanumerics, space and \"-.$/+%\" only)" },
  554. };
  555. const int data_size = ARRAY_SIZE(data);
  556. int i, length, ret;
  557. struct zint_symbol *symbol = NULL;
  558. testStartSymbol("test_options", &symbol);
  559. for (i = 0; i < data_size; i++) {
  560. if (testContinue(p_ctx, i)) continue;
  561. symbol = ZBarcode_Create();
  562. assert_nonnull(symbol, "Symbol not created\n");
  563. debug &= ~ZINT_DEBUG_TEST; /* Want real errtxt */
  564. length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, data[i].option_1, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug);
  565. if (data[i].structapp.count) {
  566. symbol->structapp = data[i].structapp;
  567. }
  568. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  569. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  570. if (ret < ZINT_ERROR) {
  571. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, symbol->errtxt);
  572. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, symbol->errtxt);
  573. }
  574. assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d symbol->errtxt %s != %s\n", i, symbol->errtxt, data[i].expected_errtxt);
  575. symbol->input_mode |= FAST_MODE;
  576. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  577. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode FAST_MODE ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  578. if (ret < ZINT_ERROR) {
  579. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
  580. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
  581. }
  582. assert_zero(strcmp(symbol->errtxt, data[i].expected_errtxt), "i:%d symbol->errtxt %s != %s\n", i, symbol->errtxt, data[i].expected_errtxt);
  583. ZBarcode_Delete(symbol);
  584. }
  585. testFinish();
  586. }
  587. static void test_reader_init(const testCtx *const p_ctx) {
  588. int debug = p_ctx->debug;
  589. struct item {
  590. int symbology;
  591. int input_mode;
  592. int output_options;
  593. char *data;
  594. int ret;
  595. int expected_rows;
  596. int expected_width;
  597. char *expected;
  598. char *comment;
  599. };
  600. static const struct item data[] = {
  601. /* 0*/ { BARCODE_DATAMATRIX, UNICODE_MODE, READER_INIT, "A", 0, 10, 10, "EA 42 81 19 A4 53 21 DF", "TODO: Check this" },
  602. /* 1*/ { BARCODE_DATAMATRIX, GS1_MODE, READER_INIT, "[91]A", ZINT_ERROR_INVALID_OPTION, 0, 0, "Error 521: Cannot use Reader Initialisation in GS1 mode", "" },
  603. };
  604. const int data_size = ARRAY_SIZE(data);
  605. int i, length, ret;
  606. struct zint_symbol *symbol = NULL;
  607. char escaped[1024];
  608. testStartSymbol("test_reader_init", &symbol);
  609. for (i = 0; i < data_size; i++) {
  610. if (testContinue(p_ctx, i)) continue;
  611. symbol = ZBarcode_Create();
  612. assert_nonnull(symbol, "Symbol not created\n");
  613. symbol->debug = ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */
  614. length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, -1 /*option_2*/, -1, data[i].output_options, data[i].data, -1, debug);
  615. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  616. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  617. if (p_ctx->generate) {
  618. printf(" /*%3d*/ { %s, %s, %s, \"%s\", %s, %d, %d, \"%s\", \"%s\" },\n",
  619. i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), testUtilOutputOptionsName(data[i].output_options),
  620. testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
  621. testUtilErrorName(data[i].ret), symbol->rows, symbol->width, symbol->errtxt, data[i].comment);
  622. } else {
  623. if (ret < ZINT_ERROR) {
  624. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
  625. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
  626. }
  627. assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
  628. }
  629. ZBarcode_Delete(symbol);
  630. }
  631. testFinish();
  632. }
  633. #define ZINT_TEST_ENCODING
  634. #ifdef ZINT_TEST_ENCODING
  635. INTERNAL int dm_encode_test(struct zint_symbol *symbol, const unsigned char source[], const int length, const int eci,
  636. const int gs1, unsigned char target[], int *p_tp);
  637. #endif
  638. static void test_input(const testCtx *const p_ctx) {
  639. int debug = p_ctx->debug;
  640. struct item {
  641. int input_mode;
  642. int eci;
  643. int option_2;
  644. int option_3;
  645. int output_options;
  646. char *data;
  647. int ret;
  648. int expected_eci;
  649. int expected_rows;
  650. int expected_width;
  651. int bwipp_cmp;
  652. char *expected;
  653. char *comment;
  654. int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
  655. };
  656. static const struct item data[] = {
  657. /* 0*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208", 0 },
  658. /* 1*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "#208", 0 },
  659. /* 2*/ { UNICODE_MODE | FAST_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "", 0 },
  660. /* 3*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80", 0, 0, 18, 18, 1, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 93 B0 1C 3C 76 FB D4 AB 16 11", "", 0 },
  661. /* 4*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 0, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C E6 07 B7 82 5F D4 3D 08 EB 60 DA B1 82 72 50 A9 5B", "BWIPP different encodation (earlier change to C40)", 0 },
  662. /* 5*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY8", 0, 0, 18, 18, 0, "(32) 86 C4 83 87 DE 8F 83 82 82 31 6C 2B 42 E6 82 5F D4 3D 0A 34 D7 21 4E D2 8D C5 9C D7", "AAAAAAAAAAAAAAAAAAAAAACCCCCC; BWIPP different encodation", 0 },
  663. /* 6*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "", 0 },
  664. /* 7*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 5F D2 56 81 76 3C D6 92 14 9F E2", "AAAAAAAAAAAAAAAAAAAAEEEEEEEAAA; BWIPP same as FAST_MODE", 0 },
  665. /* 8*/ { UNICODE_MODE | FAST_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", 0 },
  666. /* 9*/ { UNICODE_MODE, 0, 5, -1, -1, "0466010592130100000k*AGUATY80U", ZINT_ERROR_TOO_LONG, -1, 0, 0, 0, "Error 522: Input too long for Version 5, requires 19 codewords (maximum 18)", "", 0 },
  667. /* 10*/ { UNICODE_MODE | FAST_MODE, 0, 6, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C EE 08 85 D6 D2 EF 65 FE 56 81 76 4F AB 22 B8 6F 0A", "", 0 },
  668. /* 11*/ { UNICODE_MODE, 0, 6, -1, -1, "0466010592130100000k*AGUATY80U", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 5F D2 56 81 76 3C D6 92 14 9F E2", "AAAAAAAAAAAAAAAAAAAAEEEEEEEAAA; BWIPP same as FAST_MODE", 0 },
  669. /* 12*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 1, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C E6 07 B7 82 5F D4 3D 1E 5F FE 81 1E 1B B0 FE E7 54", "", 0 },
  670. /* 13*/ { UNICODE_MODE, 0, -1, -1, -1, "0466010592130100000k*AGUATY80UA", 0, 0, 20, 20, 0, "(40) 86 C4 83 87 DE 8F 83 82 82 31 6C F0 A8 11 D5 05 46 78 C1 50 5F 81 3B 50 EE DB AE A4", "AAAAAAAAAAAAAAAAAAAAEEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
  671. /* 14*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 81 42 B2 11 A8 F9 0A EC C1 1E 41", "X12 symbols_left 3, process_p 1", 0 },
  672. /* 15*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>", 0, 0, 14, 14, 0, "3F 2B 0E 3F 2B 0E 3F 81 37 3F 04 F9 CC 02 2D 70 E0 FF", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
  673. /* 16*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 FE 3F 2B 3F 05 D2 10 1B 9A 55 2F 68 C5", "X12 symbols_left 3, process_p 2", 0 },
  674. /* 17*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*", 0, 0, 14, 14, 0, "3F 2B 0E 3F 2B 0E 3F 2B 4A 88 C7 41 2E 92 94 9E 96 7B", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  675. /* 18*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0", 0 },
  676. /* 19*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>*\015", 0, 0, 14, 14, 1, "EE 0C A9 0C A9 0C A9 FE 1F 30 3F EE 45 C1 1C D7 5F 7E", "X12 symbols_left 1, process_p 0", 0 },
  677. /* 20*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "C40 symbols_left 0, process_p 0", 0 },
  678. /* 21*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF", 0, 0, 12, 12, 1, "E6 59 E9 6D 24 3D 15 EF AA 21 F9 59", "CCCCCC", 0 },
  679. /* 22*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 81 8C 7E 09 5E 10 64 BC 5F 4C 91", "C40 symbols_left 3, process_p 1", 0 },
  680. /* 23*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 DF 81 AB 07 40 5C C8 C2 F5 59 B3 10", "EEEEEEE; BWIPP same as FAST_MODE", 0 },
  681. /* 24*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 FE 48 49 2E 31 00 73 3B 8F 4B 55 93 19", "C40 symbols_left 3, process_p 2", 0 },
  682. /* 25*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 81 D1 4D 5F 96 32 9F B2 A0 C7 8D", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
  683. /* 26*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F FE 01 DE 20 9F AA C2 FF 8F 08 97", "C40 symbols_left 1, process_p 0", 0 },
  684. /* 27*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 4A 34 B0 7A 27 3C 38 82 4C 30 21", "EEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  685. /* 28*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH12", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 4E 33 B3 46 F3 D5 F5 C0 4F 12 F2 ED", "C40 symbols_left 1, process_p 1", 0 },
  686. /* 29*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH12", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 8E A7 6D C3 20 83 CE 1E A9 4F 39", "EEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
  687. /* 30*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHé", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 4A BB DA FE E1 A4 57 73 2B 4E 06 10 FB EE 83", "C40 symbols_left 1, process_p 0", 0 },
  688. /* 31*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHé", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 1F EB 6A 80 70 2B 11 BD 91 6B 5F C9 AC 43", "AEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  689. /* 32*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJ", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 80 5F 4B AD 47 09 12 FF 2F 95 CA 5B 4A", "C40 symbols_left 1, process_p 1", 0 },
  690. /* 33*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJ", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 86 C8 67 A3 F9 29 73 9C 15 90 7E 16", "ACCCCCCCCC; BWIPP same as FAST_MODE", 0 },
  691. /* 34*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C D8 69 88 60 B9 33 B9 31 E6 BF CA", "C40 symbols_left 3, process_p 2", 0 },
  692. /* 35*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 0, "F0 04 20 C4 14 61 C8 24 A2 DF B6 77 90 C2 39 AA 9B 61 7E F1 E3", "EEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
  693. /* 36*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 00 3D FE 5D 5A F5 0A 8A 4E 1D 63 07 B9", "C40 symbols_left 1, process_p 0", 0 },
  694. /* 37*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF\001G", 0, 0, 14, 14, 0, "42 43 F0 0C 41 46 02 48 57 A1 80 C5 8F EC 72 33 0A 26", "AAEEEEAA; BWIPP same as FAST_MODE", 0 },
  695. /* 38*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 FE 14 A3 27 63 01 2F B1 94 FE FA", "C40 symbols_left 1, process_p 0", 0 },
  696. /* 39*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001", 0, 0, 14, 14, 0, "42 43 44 F0 10 51 87 02 50 0C 22 23 7E A3 2B DC 8A 62", "AAAEEEEA; BWIPP same as FAST_MODE", 0 },
  697. /* 40*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 02 49 C2 E6 DD 06 89 51 BA 8E 9D 1F", "C40 symbols_left 1, process_p 1", 0 },
  698. /* 41*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG\001H", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 00 3E 66 13 C0 89 73 A8 53 20 F7 6F", "ACCCCCCCC; BWIPP same as FAST_MODE", 0 },
  699. /* 42*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 81 BD 6D F3 94 FF 82 A6 BF BB F1 4F", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  700. /* 43*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 02 37 8F B4 A6 27 9E FA CF 1E 02", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  701. /* 44*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 81 FB 93 AE 8B 1C 90 DF FE EB C5 A0 2A 6A 4F", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  702. /* 45*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 02 37 8F B4 A6 27 9E FA CF 1E 02", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  703. /* 46*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 02 4A E1 0D DD BC 56 E4 66 52 E6 AE 02", "C40 symbols_left 3, process_p 2, backtracks", 0 },
  704. /* 47*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I", 0, 0, 8, 32, 0, "42 43 44 45 F0 14 61 C8 02 4A 5F 21 C6 61 E1 7B 1C 13 FF 0D BA", "AAAAEEEEAA; BWIPP same as FAST_MODE", 0 },
  705. /* 48*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 81 93 51 DF C0 0C D3 F9 72 13 17 52 5B 7E", "C40 symbols_left 5, process_p 2, backtracks", 0 },
  706. /* 49*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH\001I", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 1F 02 4A 81 93 FD 86 6C AF 6E C6 7C 99 74 21 C4 EF", "AEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
  707. /* 50*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 02 81 47 6C 3E 49 D3 FA 46 47 53 6E E5", "Switches to ASC for last char", 0 },
  708. /* 51*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI\001", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 02 81 FA 72 8B 50 63 F2 BD D9 2E 1D CD", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  709. /* 52*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "Switches to ASC for last char", 0 },
  710. /* 53*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 02 81 FB 93 33 E3 4F F7 2D 08 8A BF 64 C3 B0 26", "CCCCCCCCCA", 0 },
  711. /* 54*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH\001I\001", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 02 4A 02 81 BD 5D C0 B9 09 25 87 3A 09 23 9D C0", "C40 symbols_left 1, process_p 1, backtracks 2", 0 },
  712. /* 55*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH\001I\001", 0, 0, 8, 32, 0, "42 E6 60 52 73 8D 83 42 89 82 5F 2E 1D 6C 18 BB 25 C3 BF 7F E1", "ACCCCCCCCCC; BWIPP same as FAST_MODE", 1 },
  713. /* 56*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 07 E5 FE 6B 35 71 7F 3D 57 59 46 F7 B9", "C40 symbols_left 1, process_p 0", 0 },
  714. /* 57*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEF+G", 0, 0, 14, 14, 0, "F0 04 20 C4 14 6A C7 81 28 87 C6 C4 D6 50 53 DE 8D 80", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
  715. /* 58*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 FE 33 F5 97 60 73 48 13 2E E5 74", "C40 symbols_left 1, process_p 0", 0 },
  716. /* 59*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 EB 81 E8 04 8F 69 BD F5 01 28 03 0A", "EEEEEEEE; BWIPP same as FAST_MODE", 1 },
  717. /* 60*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 33 49 E5 B0 6D 05 FB 36 18 34 86 91", "C40 symbols_left 1, process_p 1", 0 },
  718. /* 61*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFG+H", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 EB 49 4A 4B 86 44 96 1E F6 22 DC 82", "EEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  719. /* 62*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 02 BD 40 CF 3B 06 C2 DF 36 E0 48", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  720. /* 63*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 2C 1F DD 3B 4F 62 48 0E 16 F9 5D", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  721. /* 64*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 81 FB 93 F6 78 B5 69 0B 83 C6 32 62 1A D2 FF", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  722. /* 65*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 2C 1F DD 3B 4F 62 48 0E 16 F9 5D", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  723. /* 66*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 5E DD 6E E7 92 60 02 32 6B BF 05", "C40 symbols_left 3, process_p 2, backtracks", 0 },
  724. /* 67*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGH+I", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 2B 4A 81 E2 22 C5 B6 9C AB 0E F1 63 E5 EE", "AEEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  725. /* 68*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+I", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 2C 4A 81 93 09 2C 69 F5 07 84 5F E4 D5 62 E3 CE", "C40 symbols_left 5, process_p 2, backtracks", 0 },
  726. /* 69*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGH+I", 0, 0, 16, 16, 0, "42 43 F0 0C 41 46 1C 8A C9 7C 81 93 A8 91 6E F7 89 AB E8 A5 8E CA F0 34", "AAEEEEEEEE; BWIPP same as FAST_MODE", 0 },
  727. /* 70*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 F8 BC 8D 12 17 7E 22 27 DE 7F E2", "C40 symbols_left 3, process_p 2, backtracks", 0 },
  728. /* 71*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHI+", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 2C 81 45 A2 38 0B A7 76 D9 B9 A3 0C CA", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  729. /* 72*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "Switches to ASC for last char", 0 },
  730. /* 73*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHI+", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 2C 81 FB 93 6B 10 E6 0E F9 75 A7 48 A6 F3 08 96", "CCCCCCCCCA", 0 },
  731. /* 74*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 0E 25 FE DA 14 D7 15 47 69 9D 4A 54 6D", "C40 symbols_left 1, process_p 0", 0 },
  732. /* 75*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFjG", 0, 0, 14, 14, 0, "42 43 F0 0C 41 46 6B 48 77 B6 92 A1 DC 92 42 54 39 84", "AAEEEEAA; BWIPP same as FAST_MODE", 0 },
  733. /* 76*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B FE B5 F3 24 0A 99 26 D6 CC A8 40", "C40 symbols_left 1, process_p 0", 0 },
  734. /* 77*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGj", 0, 0, 14, 14, 0, "42 43 44 F0 10 51 87 6B 0D 41 FF FD 91 82 0B 8F CB AA", "AAAEEEEA; BWIPP same as FAST_MODE", 0 },
  735. /* 78*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 1, "E6 59 E9 6D 24 7D 5B 49 63 B6 DE 6F 11 58 DD D6 CB A5", "C40 symbols_left 1, process_p 1", 0 },
  736. /* 79*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGjH", 0, 0, 14, 14, 0, "42 E6 60 52 73 8D 0E 26 0E F4 AD 89 C6 72 8A 26 34 65", "ACCCCCCCC; BWIPP same as FAST_MODE", 0 },
  737. /* 80*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 ED 78 CB 9F 52 EE 52 88 91 67 96", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  738. /* 81*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHj", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 6B 6A C2 69 78 C8 BF DA 9C 5F CA", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  739. /* 82*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHj", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 81 FB 93 BF 72 03 35 09 37 98 FF 39 A7 E3 6D", "C40 symbols_left 1, process_p 1, backtracks", 0 },
  740. /* 83*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHj", 0, 0, 14, 14, 0, "F0 04 20 C4 14 61 C8 6B 6A C2 69 78 C8 BF DA 9C 5F CA", "EEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  741. /* 84*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A B1 18 E5 B7 FB 88 92 65 CC 38 DB", "C40 symbols_left 3, process_p 2, backtracks", 0 },
  742. /* 85*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHjI", 0, 0, 8, 32, 0, "42 43 44 45 F0 14 61 C8 6B 4A 0F 34 FE 6A 4C 17 E8 24 D5 9B 63", "AAAAEEEEAA; BWIPP same as FAST_MODE", 0 },
  743. /* 86*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHjI", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 6B 4A 81 93 40 26 DF A9 05 30 01 29 8E DF D2 5C", "C40 symbols_left 5, process_p 2, backtracks", 0 },
  744. /* 87*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "ABCDEFGHjI", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 1F 6B 4A 81 93 EC 7F 73 0A B8 0F 0F A3 ED AC 4D CD", "AEEEEEEEAA; BWIPP same as FAST_MODE", 0 },
  745. /* 88*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 6B 81 17 79 06 42 7E 96 B2 70 79 F8 3C", "Switches to ASC for last char", 0 },
  746. /* 89*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIj", 0, 0, 8, 32, 0, "42 F0 08 31 05 18 72 09 6B 81 AA 67 B3 5B CE 9E 49 EE 04 8B 14", "AEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  747. /* 90*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B EB 4B 81 DD D9 F9 C9 C5 38 F3 4B DB 80 92 A7", "Switches to ASC for last 2 chars", 0 },
  748. /* 91*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJÊ", 0, 0, 8, 32, 0, "42 E6 60 52 73 8D 86 C8 0B 08 72 65 72 59 41 70 1B CE 76 D7 1F", "ACCCCCCCCCC; BWIPP same as FAST_MODE", 0 },
  749. /* 92*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C EB 4B 15 17 46 06 70 F3 15 74 45 26 72 2D", "C40 symbols_left 3, process_p 2, backtracks", 0 },
  750. /* 93*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKÊ", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 4B A1 42 E9 2A A8 3B 79 8B E9 40 E9 58", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  751. /* 94*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB B2 FE 11 5C 60 32 A6 DE FC 7B 30 F1 03 56", "C40 symbols_left 1, process_p 0", 0 },
  752. /* 95*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKª", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 2B 02 D1 85 74 F7 92 3F 2E 1F 07 A3 BE", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  753. /* 96*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 80 5F 93 82 BB DB FE 78 43 69 3C C2 FE F5 2E 1B 4F B6 04", "C40 symbols_left 1, process_p 0", 0 },
  754. /* 97*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKê", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 24 A2 DF EB 6B C0 33 CD FB 9D 5C A0 E8 BB 7D 34 E1", "EEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  755. /* 98*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 4A A9 8D FE 42 43 64 81 83 B4 8F 6B 95 F6 CE A6 3C 5C 77 86 08 50", "C40 symbols_left 3, process_p 1, backtracks", 0 },
  756. /* 99*/ { GS1_MODE, 0, -1, -1, -1, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 0, "E8 8C 42 F0 08 31 05 18 72 1F E8 8C 42 43 64 81 12 DE 1C 0E B2 93 B3 C5 3C 58 A8 4A 83 4C", "AAAEEEEEEEAAAAAA; BWIPP same as FAST_MODE", 0 },
  757. /*100*/ { GS1_MODE | FAST_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 1, "E8 8C E6 59 E9 6D 24 80 49 B6 0D FE 42 43 64 81 79 E4 20 33 76 5C C7 23 E6 C5 FA 4C FF 88", "C40 symbols_left 3, process_p 1, backtracks", 0 },
  758. /*101*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]ABCDEFGH[10]ABc", 0, 0, 12, 26, 0, "E8 8C 42 F0 08 31 05 18 72 1F 1E 8C 42 43 64 81 4E 3D 4C 86 78 D4 97 78 85 01 48 D5 B9 29", "AAAEEEEEEEAAAAAA; BWIPP same as FAST_MODE", 0 },
  759. /*102*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TEX symbols_left 0, process_p 0", 0 },
  760. /*103*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef", 0, 0, 12, 12, 1, "EF 59 E9 6D 24 E2 CC D9 B4 55 E2 6A", "TTTTTT", 0 },
  761. /*104*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 81 A9 65 CD 3A A2 E9 E0 B7 E1 E5", "TEX symbols_left 3, process_p 1", 0 },
  762. /*105*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 81 4A 9E 59 19 83 14 93 AD 5E 19", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
  763. /*106*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 FE 68 69 68 36 28 3C 85 5A E9 D4 49 9A", "TEX symbols_left 3, process_p 2", 0 },
  764. /*107*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 69 8B CD BC 1F A4 A7 9A CE F6 66", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  765. /*108*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TEX symbols_left 1, process_p 0", 0 },
  766. /*109*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 80 5F FE DA BF FA 16 71 15 22 4D E3 F3", "TTTTTTTTT", 0 },
  767. /*110*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdef\001g", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 00 3D FE 86 3B 2F 83 51 99 C0 A1 EC DD", "TEX symbols_left 1, process_p 0", 0 },
  768. /*111*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdef\001g", 0, 0, 14, 14, 0, "62 63 64 65 66 67 02 68 51 87 9F 1D E9 36 3E B2 5F 4F", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  769. /*112*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg\001", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 FE CF C2 FD EA DA F8 6C 56 15 9E", "TEX symbols_left 1, process_p 0", 0 },
  770. /*113*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 02 AC 5C B2 29 96 15 DB C2 87 96", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  771. /*114*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 02 69 7A 9B EB A4 5E DE 99 25 01 8C", "TEX symbols_left 1, process_p 1", 0 },
  772. /*115*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefg\001h", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 00 3E DC 69 2C DB 8D 1B C4 DF 8C 9A", "ATTTTTTTT; BWIPP same as FAST_MODE", 0 },
  773. /*116*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 81 EB 84 25 32 6E 1B 5A FB 1D 25 4A", "TEX symbols_left 1, process_p 1, backtracks", 0 },
  774. /*117*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 42 A7 27 45 DE 64 B7 93 23 AF 04", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
  775. /*118*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 81 FB 93 93 FD 1E 3B BA 1D 16 4D 59 41 EC B9", "TEX symbols_left 1, process_p 1, backtracks", 0 },
  776. /*119*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 42 A7 27 45 DE 64 B7 93 23 AF 04", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
  777. /*120*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 31 35 48 9B 93 6E 15 BB 02 9D F4", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  778. /*121*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i", 0, 0, 8, 32, 0, "62 63 64 65 66 67 68 69 02 6A D2 78 3E D1 EC CE 72 33 20 0E F2", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  779. /*122*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001i", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 81 93 DE D7 EC 9B 7D 72 9C 68 B8 6E CF 31", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  780. /*123*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefgh\001i", 0, 0, 16, 16, 0, "62 63 64 65 66 67 68 69 02 6A 81 93 45 9D 38 FC 6B CA 1C 9B DF 3F C8 30", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  781. /*124*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "Switches to ASC for last char", 0 },
  782. /*125*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghi\001", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 02 81 4D AB 30 86 CD D1 9D F3 15 F5 B1", "TTTTTTTTTA", 0 },
  783. /*126*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgh\001i\001", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 02 6A 02 81 32 55 EC 2E A7 AE 69 41 A6 1F 09 8F", "TEX symbols_left 1, process_p 1, backtracks 2", 0 },
  784. /*127*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgh\001i\001", 0, 0, 8, 32, 0, "62 EF 60 52 73 8D 83 42 89 82 80 A6 CC 72 8E 8C C5 75 D3 0D C2", "ATTTTTTTTTT; BWIPP same as FAST_MODE", 1 },
  785. /*128*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefJg", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 0E 25 FE 01 75 0D 9C 9C BE 40 88 BF 09", "TEX symbols_left 1, process_p 0", 0 },
  786. /*129*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefJg", 0, 0, 14, 14, 0, "62 63 64 65 66 67 4B 68 8F EA 93 94 D3 12 8F FF 2A FD", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  787. /*130*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgJ", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B FE 6E 92 FE 83 42 F1 0B 0E 43 24", "TEX symbols_left 1, process_p 0", 0 },
  788. /*131*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJ", 0, 0, 14, 14, 0, "62 63 64 65 66 67 68 4B 92 0D 83 DC 75 6C 05 F8 B1 A9", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  789. /*132*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefgJh", 0, 0, 14, 14, 1, "EF 59 E9 6D 24 7D 5B 69 DB CB E8 CD C6 D7 FE 7D 57 36", "TEX symbols_left 1, process_p 1", 0 },
  790. /*133*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefgJh", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 0E 26 B4 8E 41 DB 38 C1 1D D9 4F 90", "ATTTTTTTT; BWIPP same as FAST_MODE", 0 },
  791. /*134*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 15 8A 35 57 7F 33 B3 48 01 E0 BD", "TEX symbols_left 1, process_p 1, backtracks", 0 },
  792. /*135*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJ", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 9B 9F 08 C5 04 B1 AF BD 32 C5 7D", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
  793. /*136*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 81 FB 93 5B D4 D2 8B EE 85 F2 3E 3F 8E E5 04", "TEX symbols_left 1, process_p 1, backtracks", 0 },
  794. /*137*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJ", 0, 0, 14, 14, 0, "62 EF 60 52 73 8D 83 9B 9F 08 C5 04 B1 AF BD 32 C5 7D", "ATTTTTTTT; BWIPP same as FAST_MODE", 1 },
  795. /*138*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghJi", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A CF 3B 58 FE 82 46 FC 08 1E 58 03", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  796. /*139*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghJi", 0, 0, 8, 32, 0, "62 63 64 65 66 67 68 69 4B 6A 2C 76 2E B4 FD E6 9B 80 3C CB 05", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  797. /*140*/ { UNICODE_MODE | FAST_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJi", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 FE 68 69 4B 6A 81 93 16 FE 20 2B 29 EA 78 1B DE A1 C6 8C", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  798. /*141*/ { UNICODE_MODE, 0, -1, DM_SQUARE, -1, "abcdefghJi", 0, 0, 16, 16, 0, "62 63 64 65 66 67 68 69 4B 6A 81 93 8D B4 F4 4C 3F 52 F8 E8 B9 F0 C1 8D", "AAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  799. /*142*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "Switches to ASC for last char", 0 },
  800. /*143*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghiJ", 0, 0, 8, 32, 1, "EF 59 E9 6D 24 80 5F FE 4B 81 B3 A5 20 E3 DC F9 74 40 09 30 46", "TTTTTTTTTA", 0 },
  801. /*144*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB DB FE 3E C8 EC 73 58 A7 42 46 10 49 25 99", "TEX symbols_left 1, process_p 0", 0 },
  802. /*145*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkÊ", 0, 0, 16, 16, 0, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 4B 38 32 3E 60 A3 93 26 A6 E7 35 73 96", "TTTTTTTTTAAA; BWIPP same as FAST_MODE", 0 },
  803. /*146*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F 93 82 BB B2 FE 57 D7 E5 7D 3C 87 4B 13 3B F7 90 CB", "TEX symbols_left 1, process_p 0", 0 },
  804. /*147*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkª", 0, 0, 16, 16, 0, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 2B 9B A1 52 3E FC 3A 60 03 11 72 39 70", "TTTTTTTTTAAA; BWIPP same as FAST_MODE", 0 },
  805. /*148*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  806. /*149*/ { UNICODE_MODE, 0, -1, -1, -1, "abcdefghijkê", 0, 0, 16, 16, 1, "EF 59 E9 6D 24 80 5F FE 6B 6C EB 6B 59 43 1A B1 96 F4 FF C5 B5 08 AE 2F", "TEX symbols_left 3, process_p 2, backtracks", 0 },
  807. /*150*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 4A A9 8D FE 62 63 44 81 88 DC 73 33 70 A1 83 EA 50 CB 4E 17 90 DB", "TEX symbols left 3, process_p 1, backtracks", 0 },
  808. /*151*/ { GS1_MODE, 0, -1, -1, -1, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 0, "E8 8C 62 63 64 65 66 67 68 69 E8 8C 62 63 44 81 43 79 B0 35 F6 1E AB 24 19 85 40 E7 B2 49", "AAAAAAAAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  809. /*152*/ { GS1_MODE | FAST_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 1, "E8 8C EF 59 E9 6D 24 80 49 B6 0D FE 62 63 44 81 72 8C DC 6B 93 0B 8A 6F 8A 52 C3 DD 67 03", "TEX symbols left 3, process_p 1, backtracks", 0 },
  810. /*153*/ { GS1_MODE, 0, -1, -1, GS1_GS_SEPARATOR, "[10]abcdefgh[10]abC", 0, 0, 12, 26, 0, "E8 8C 62 63 64 65 66 67 68 69 1E 8C 62 63 44 81 1F 9A E0 BD 3C 59 8F 99 A0 DC A0 78 88 2C", "AAAAAAAAAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  811. /*154*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0", 0 },
  812. /*155*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>", 0, 0, 12, 12, 1, "EE 00 2B 00 2B 83 3B 0A CE 32 36 65", "X12 symbols_left 0, process_p 0", 0 },
  813. /*156*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 81 C0 6C BF 37 F6 D6 48 71 E2 38", "Switches to ASC for last char", 0 },
  814. /*157*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015", 0, 0, 14, 14, 0, "0E 2B 3F 0E 2B 3F 0E 81 33 CC F8 AA 23 B8 F3 40 BC DB", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
  815. /*158*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 1, "EE 00 2B 00 2B FE 0E 2B BD DB 7C 8F 14 46 F1 9F 94 BC", "Switches to ASC for last 2 chars", 0 },
  816. /*159*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*", 0, 0, 14, 14, 0, "0E 2B 3F 0E 2B 3F 0E 2B 4E 7B 3B 12 C1 28 4A AE CA 5F", "AAAAAAAA; BWIPP same as FAST_MODE", 0 },
  817. /*160*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
  818. /*161*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B FE BF 81 70 74 1C 65 10 0C 06 38", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
  819. /*162*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 1, "EE 00 2B 00 2B 00 2B 0E 1C DB D8 26 3E EC CF 9C C3 4A", "X12 symbols_left 1, process_p 1, ASC no latch at end", 0 },
  820. /*163*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015", 0, 0, 14, 14, 0, "0E EE 06 91 06 91 06 91 71 69 39 1E 01 32 D5 57 81 8E", "AXXXXXXXXX; BWIPP same as FAST_MODE", 0 },
  821. /*164*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B FE 0E 2B 65 37 5F 2F F3 96 BE 9A 03 55 68", "X12 symbols_left 3, process_p 2, ASC last 2 chars", 0 },
  822. /*165*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*", 0, 0, 8, 32, 0, "0E 2B EE 0C 82 0C 82 0C 82 FE E7 2D 83 16 AA 07 19 34 F4 F8 7B", "AAXXXXXXXXX; BWIPP same as FAST_MODE", 0 },
  823. /*166*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
  824. /*167*/ { UNICODE_MODE, 0, -1, -1, -1, "\015*>\015*>\015*>\015*>", 0, 0, 8, 32, 1, "EE 00 2B 00 2B 00 2B 00 2B FE 6E 95 3A 10 58 4E 96 06 79 09 94", "X12 symbols_left 1, process_p 0, ASC unlatch at end", 0 },
  825. /*168*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0", 0 },
  826. /*169*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 81 2D 71 45 13 9B FF A1 B0 0B E2", "EDIFACT symbols_left 1, process_p 0", 0 },
  827. /*170*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EDIFACT symbols_left 1, process_p 1", 0 },
  828. /*171*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3", 0, 0, 14, 14, 1, "F0 00 1C 5E 0B 2F C3 34 81 E8 6C 9E CE 12 CB F5 58 3F", "EEEEEEEEA", 0 },
  829. /*172*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B7 C0 33 C6 81 E1 63 6E 5E B4 27 30 C9", "EDIFACT symbols_left 3, process_p 2", 0 },
  830. /*173*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+", 0, 0, 8, 32, 0, "41 F0 07 17 82 CB F0 F3 2C 81 38 6D 00 EB 77 36 F8 D8 99 B4 1C", "AEEEEEEEEA; BWIPP same as FAST_MODE", 1 },
  831. /*174*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EDIFACT symbols_left 3, process_p 3", 0 },
  832. /*175*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 1F 4D E1 79 04 2B BC 05 6C 38 73 39", "EEEEEEEEEEE", 0 },
  833. /*176*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0", 0 },
  834. /*177*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4", 0, 0, 8, 32, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 F4 EC B3 DC 03 A3 1F B5 86 C3 F7", "EDIFACT symbols_left 0, process_p 0", 0 },
  835. /*178*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EDIFACT symbols_left 2, process_p 1", 0 },
  836. /*179*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=", 0, 0, 16, 16, 0, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 81 42 96 43 6E 92 0D A9 B1 65 3C CF 9B", "EEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  837. /*180*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 1, "F0 00 1C 5E 0B 2F C3 CE B1 34 3E 46 AD 8C F2 D8 5D AF F3 65 08 1F E3 A5", "EDIFACT symbols_left 2, process_p 2", 0 },
  838. /*181*/ { UNICODE_MODE, 0, -1, -1, -1, "@A1^B2?C3+D4=E", 0, 0, 16, 16, 0, "41 F0 07 17 82 CB F0 F3 AC 4D 3D 46 16 18 75 8F 52 46 7B 18 F6 68 F1 43", "AEEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  839. /*182*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad", 0 },
  840. /*183*/ { DATA_MODE, 0, -1, -1, -1, "\377\376", 0, 0, 12, 12, 1, "EB 80 EB 7F 81 6F A8 0F 21 6F 5F 88", "FN4 A7F FN4 A7E, 1 pad", 0 },
  841. /*184*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding", 0 },
  842. /*185*/ { DATA_MODE, 0, -1, -1, -1, "\377\376\375", 0, 0, 12, 12, 1, "E7 2C C0 55 E9 67 45 8A D2 7E A9 23", "BAS BFF BFE BFD, no padding", 0 },
  843. /*186*/ { DATA_MODE | FAST_MODE, 3, -1, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 0, "F1 04 42 43 E7 87 5B F1 03 1D 36 81 2C E3 87 24 2D FD 69 9C 87 FA 8A 73", "ECI 4 ASC A41 A42 BAS B43 B44 BC0 B45 BC8; BWIPP different encodation (uses only B256, same no. of codewords)", 0 },
  844. /*187*/ { DATA_MODE, 3, -1, -1, -1, "\101\102\103\104\300\105\310", 0, 3, 16, 16, 0, "F1 04 42 43 44 45 EB 41 46 EB 49 81 6E 28 91 70 A5 CC E6 32 B6 3F 15 1C", "ECI 4 ASC A41 A42 BAS B43 B44 BC0 B45 BC8; BWIPP different encodation (uses only B256, same no. of codewords)", 0 },
  845. /*188*/ { UNICODE_MODE | FAST_MODE, 26, -1, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 1, "F1 1B E7 60 2D C4 5B F1 06 58 B3 C7 21 81 57 ED 3D C0 12 2E 6C 80 58 CC 2C 05 0D 31 FC 2D", "ECI 27 BAS B41 B42 B43 B44 BC3 B80 B45 BC3 B88", 0 },
  846. /*189*/ { UNICODE_MODE, 26, -1, -1, -1, "ABCDÀEÈ", 0, 26, 12, 26, 0, "F1 1B 42 43 44 45 E7 B2 06 58 B3 C7 21 81 57 ED A8 34 CC 27 DA F6 B0 4D B7 FC AF 96 56 57", "AAAABBBBB; BWIPP same as FAST_MODE", 0 },
  847. /*190*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62", 0 },
  848. /*191*/ { UNICODE_MODE, 0, -1, -1, -1, "β", ZINT_WARN_USES_ECI, 9, 12, 12, 1, "Warning F1 0A EB 63 81 41 56 DA C0 3D 2D CC", "ECI 10 FN4 A62", 0 },
  849. /*192*/ { UNICODE_MODE | FAST_MODE, 127, -1, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41", 0 },
  850. /*193*/ { UNICODE_MODE, 127, -1, -1, -1, "A", 0, 127, 12, 12, 1, "F1 80 01 42 81 14 A2 86 07 F5 27 30", "ECI 128 A41", 0 },
  851. /*194*/ { UNICODE_MODE | FAST_MODE, 16382, -1, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41", 0 },
  852. /*195*/ { UNICODE_MODE, 16382, -1, -1, -1, "A", 0, 16382, 12, 12, 1, "F1 BF FE 42 81 29 57 AA A0 92 B2 45", "ECI 16383 A41", 0 },
  853. /*196*/ { UNICODE_MODE | FAST_MODE, 810899, -1, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41", 0 },
  854. /*197*/ { UNICODE_MODE, 810899, -1, -1, -1, "A", 0, 810899, 12, 12, 1, "F1 CC 51 05 42 BB A5 A7 8A C6 6E 0F", "ECI 810900 A41", 0 },
  855. /*198*/ { UNICODE_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41", 0 },
  856. /*199*/ { UNICODE_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R05\\GA\\R\\E", 0, 0, 10, 10, 1, "EC 42 81 5D 17 49 F6 B6", "Macro05 A41", 0 },
  857. /*200*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJKLM*", 0, 0, 16, 16, 1, "EE 59 E9 6D 24 80 5F 93 9A FE 4E 2B 09 FF 50 A2 83 BE 32 E1 2F 17 1E F3", "C40 == X12, p_r_6_2_1 true", 0 },
  858. /*201*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJKLM*", 0, 0, 16, 16, 0, "42 F0 08 31 05 18 72 09 28 B3 0D 2B 63 64 96 E4 6C CE D3 47 9A 5F E8 70", "AEEEEEEEEEEEEA; BWIPP same as FAST_MODE", 0 },
  859. /*202*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\015\015\015\015\015\015\015\015\015a\015\015\015\015\015\015\015", 0, 0, 12, 26, 1, "EE 00 01 00 01 00 01 FE 62 EE 00 01 00 01 FE 0E B5 9A 73 85 83 20 23 2C E0 EC EC BF 71 E0", "a not X12 encodable", 0 },
  860. /*203*/ { UNICODE_MODE, 0, -1, -1, -1, "\015\015\015\015\015\015\015\015\015a\015\015\015\015\015\015\015", 0, 0, 12, 26, 0, "EE 00 01 00 01 00 01 FE 62 0E 0E 0E 0E 0E 0E 0E F3 21 61 11 C7 BA 48 DE 65 86 FE 7E A2 F5", "XXXXXXXXXAAAAAAAA; BWIPP same as FAST_MODE", 0 },
  861. /*204*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ".........a.......", 0, 0, 18, 18, 0, "(32) F0 BA EB AE BA EB AE B9 F0 62 2F 2F 2F 2F 2F 2F 2F 81 78 BE 1F 90 B8 89 73 66 DC BD", "a not EDIFACT encodable; BWIPP different encodation (switches to ASCII one dot before)", 0 },
  862. /*205*/ { UNICODE_MODE, 0, -1, -1, -1, ".........a.......", 0, 0, 18, 18, 0, "(32) 2F 2F F0 BA EB AE BA EB 9F 62 F0 BA EB AE BA EB 9F 81 F4 71 C0 AF 4F 8C 04 D9 F3 E3", "AAEEEEEEEAEEEEEEE; BWIPP different encodation", 0 },
  863. /*206*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]........[91]....", 0, 0, 12, 26, 1, "E8 DC 2F 2F 2F 2F 2F 2F 2F 2F E8 DD 2F 2F 2F 2F C6 CC 13 68 0D 9D A9 A5 B8 D5 5A F3 7B 18", "Can't use GS1 EDIFACT if contains FNC1/GS", 0 },
  864. /*207*/ { GS1_MODE, 0, -1, -1, -1, "[90]........[91]....", 0, 0, 12, 26, 0, "E8 DC 2F F0 BA EB AE BA EB 9F E8 DD 2F 2F 2F 2F FE B0 C3 BC 8E AA AC CF 01 84 72 DF 59 6A", "AAAEEEEEEEAAAAAAA; BWIPP same as FAST_MODE", 0 },
  865. /*208*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]........", 0, 0, 8, 32, 1, "E8 DC F0 BA EB AE BA EB AE 81 B1 C0 AB DA A5 92 AF E2 05 DE 56", "Can use GS1 EDIFACT if no FNC1/GS", 0 },
  866. /*209*/ { GS1_MODE, 0, -1, -1, -1, "[90]........", 0, 0, 8, 32, 1, "E8 DC F0 BA EB AE BA EB AE 81 B1 C0 AB DA A5 92 AF E2 05 DE 56", "Can use GS1 EDIFACT if no FNC1/GS", 0 },
  867. /*210*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]ABCDEFGH[91]ABCD", 0, 0, 12, 26, 1, "E8 DC E6 59 E9 6D 24 80 4A AA CE 59 E9 FE 45 81 6A 05 49 36 67 C8 00 DE 35 29 C5 9A 17 EA", "GS1 C40 ok", 0 },
  868. /*211*/ { GS1_MODE, 0, -1, -1, -1, "[90]ABCDEFGH[91]ABCD", 0, 0, 12, 26, 0, "E8 DC 42 E6 60 52 73 8D 83 84 52 17 60 52 FE 81 25 A6 B1 A9 6D 2E 30 9E A7 F7 F8 99 55 11", "AAACCCCCCCCCCCCCC; BWIPP same as FAST_MODE", 0 },
  869. /*212*/ { GS1_MODE | FAST_MODE, 0, -1, -1, -1, "[90]ABCD", 0, 0, 14, 14, 1, "E8 DC 42 43 44 45 81 38 98 32 8C 23 4D 87 5A 95 04 A7", "Final ASC unlatch", 0 },
  870. /*213*/ { GS1_MODE, 0, -1, -1, -1, "[90]ABCD", 0, 0, 14, 14, 1, "E8 DC 42 43 44 45 81 38 98 32 8C 23 4D 87 5A 95 04 A7", "AAAAAA", 0 },
  871. /*214*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ">*\015>*\015>......", 0, 0, 12, 26, 0, "EE 0C A9 0C A9 FE 3F 2F 2F 2F 2F 2F 2F 81 57 ED 0F 29 C7 9D 5D 64 61 94 14 CD A8 DF 65 8D", "X12 then ASC; BWIPP switches to ASCII earlier", 1 },
  872. /*215*/ { UNICODE_MODE, 0, -1, -1, -1, ">*\015>*\015>......", 0, 0, 12, 26, 0, "3F 2B 0E 3F 2B 0E F0 FA EB AE BA EB 9F 81 57 ED E8 73 07 E0 2D 09 CD 94 36 26 E4 EB 34 6E", "AAAAAAEEEEEEE; BWIPP different encodation", 0 },
  873. /*216*/ { UNICODE_MODE | FAST_MODE, 0, 4, -1, -1, "ABCDEFGH", 0, 0, 16, 16, 1, "E6 59 E9 6D 24 FE 48 49 81 65 FB 93 F7 A4 EA B0 37 00 4F 4C 8A 99 0B 69", "", 0 },
  874. /*217*/ { UNICODE_MODE, 0, 4, -1, -1, "ABCDEFGH", 0, 0, 16, 16, 0, "F0 04 20 C4 14 61 C8 7C 81 65 FB 93 D7 12 24 0A 2D B8 CF C8 33 D8 87 D1", "EEEEEEEE; BWIPP same as FAST_MODE", 0 },
  875. /*218*/ { UNICODE_MODE | FAST_MODE, 0, 26, -1, -1, "@@@@@@@@@_", 0, 0, 8, 32, 0, "F0 00 00 00 00 00 1F 41 41 60 63 50 E0 FE 8B 46 16 38 FE 58 AD", "BWIPP switches to ASCII later", 0 },
  876. /*219*/ { UNICODE_MODE, 0, 26, -1, -1, "@@@@@@@@@_", 0, 0, 8, 32, 0, "41 F0 00 00 00 00 00 00 60 81 39 60 6A 49 C1 4A CD 3A 69 51 E0", "AEEEEEEEEA; BWIPP different encodation", 1 },
  877. /*220*/ { UNICODE_MODE | FAST_MODE, 0, 4, -1, -1, "@@@@@@@@@_", 0, 0, 16, 16, 0, "F0 00 00 00 00 00 1F 41 41 60 81 93 F9 B0 1A A1 B9 6C D3 01 38 CD 51 75", "BWIPP switches to ASCII later", 0 },
  878. /*221*/ { UNICODE_MODE, 0, 4, -1, -1, "@@@@@@@@@_", 0, 0, 16, 16, 0, "41 41 F0 00 00 00 00 00 1F 60 81 93 F3 2C 45 BF 89 58 D4 46 51 57 01 F3", "AAEEEEEEEA; BWIPP different encodation", 0 },
  879. /*222*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 0, 0, 26, 26, 1, "(72) F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "", 0 },
  880. /*223*/ { UNICODE_MODE, 0, -1, -1, -1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", 0, 0, 26, 26, 1, "(72) F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00", "EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE", 0 },
  881. /*224*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 1, "E6 59 E9 6D 24 80 5F FE 4B 4C D8 69 88 60 B9 33 B9 31 E6 BF CA", "", 0 },
  882. /*225*/ { UNICODE_MODE, 0, -1, -1, -1, "ABCDEFGHIJK", 0, 0, 8, 32, 0, "F0 04 20 C4 14 61 C8 24 A2 DF B6 77 90 C2 39 AA 9B 61 7E F1 E3", "EEEEEEEEEEE; BWIPP same as FAST_MODE", 0 },
  883. /*226*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\001AAAAA", 0, 0, 14, 14, 1, "02 42 42 42 42 42 81 38 80 00 99 9E F5 8F 04 71 FB 4E", "", 0 },
  884. /*227*/ { UNICODE_MODE, 0, -1, -1, -1, "\001AAAAA", 0, 0, 14, 14, 0, "02 42 42 42 42 42 81 38 80 00 99 9E F5 8F 04 71 FB 4E", "AAAAAA; BWIPP same as FAST_MODE", 0 },
  885. /*228*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "\001AAAAAA", 0, 0, 14, 14, 1, "02 E6 59 BF 59 BF FE 81 EC 06 F3 00 0B 1F AA CB FC EB", "", 0 },
  886. /*229*/ { UNICODE_MODE, 0, -1, -1, -1, "\001AAAAAA", 0, 0, 14, 14, 0, "02 42 F0 04 10 41 42 81 9C E9 2B 19 D3 07 3C 11 0E 63", "AAEEEEA; BWIPP same as FAST_MODE", 0 },
  887. /*230*/ { DATA_MODE | FAST_MODE, 0, -1, -1, -1, "\200\076\076\076\076\076\076\076", 0, 0, 8, 32, 0, "E7 2D 41 EE 0C D3 0C D3 FE 3F 81 93 1A AE 50 D6 E0 FB 18 EA 2E", "BAS X12; BWIPP different encodation", 0 },
  888. /*231*/ { DATA_MODE, 0, -1, -1, -1, "\200\076\076\076\076\076\076\076", 0, 0, 14, 14, 0, "EB 01 3F EE 0C D3 0C D3 C3 98 B8 7F 21 0C 23 45 A9 27", "AAXXXXXX; BWIPP different encodation", 2 },
  889. /*232*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, ".....12", 0, 0, 14, 14, 1, "2F 2F 2F 2F 2F 8E 81 38 18 5E 9A 70 18 19 D0 35 7E 82", "ASC", 0 },
  890. /*233*/ { UNICODE_MODE, 0, -1, -1, -1, ".....12", 0, 0, 14, 14, 0, "2F 2F 2F 2F 2F 8E 81 38 18 5E 9A 70 18 19 D0 35 7E 82", "AAAAAAA; BWIPP same as FAST_MODE", 0 },
  891. /*234*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "aaaaaa", 0, 0, 12, 12, 1, "EF 59 BF 59 BF 1B 98 38 0A E1 70 F9", "ASC", 0 },
  892. /*235*/ { UNICODE_MODE, 0, -1, -1, -1, "aaaaaa", 0, 0, 12, 12, 1, "EF 59 BF 59 BF 1B 98 38 0A E1 70 F9", "TTTTTT", 0 },
  893. /*236*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "AAAAAAAAAAAAAA12a", 0, 0, 12, 26, 1, "E6 59 BF 59 BF 59 BF 59 BF 59 B6 25 D2 FE 81 ED 63 5A 30 1D C5 77 70 66 93 2B 6A 40 23 22", "", 0 },
  894. /*237*/ { UNICODE_MODE, 0, -1, -1, -1, "AAAAAAAAAAAAAA12a", 0, 0, 12, 26, 0, "E6 59 BF 59 BF 59 BF 59 BF FE 42 42 8E 62 81 ED 19 C5 3F C8 AC F1 E9 F5 68 75 AA 6C 14 72", "CCCCCCCCCCCCAAAAA; BWIPP same as FAST_MODE", 0 },
  895. /*238*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "1234ééé12", 0, 0, 8, 32, 0, "8E A4 E7 59 D5 6B EB 6A 8E 81 22 4D 35 A9 CA 58 B3 1B 33 B7 DD", "N12 N34 BAS BE9 BE9 ASC FN4 A69 N12; BWIPP same as non-FAST_MODE", 0 },
  896. /*239*/ { UNICODE_MODE, 0, -1, -1, -1, "1234ééé12", 0, 0, 14, 14, 1, "8E A4 E7 5A D5 6B 01 8E 1C 5C 58 A7 11 8D DD A8 D6 B9", "", 1 },
  897. /*240*/ { UNICODE_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1\013*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 32 0C EE 08 9B 64 7E 57 B8 0F 04 21 72 FE 81 68 FE", "Okapi datamatrix/ascii-within-x12.png", 1 },
  898. /*241*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1\013*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 32 0C EE 08 9B 64 7E 57 B8 0F 04 21 72 FE 81 68 FE", "Okapi datamatrix/ascii-within-x12.png, process_p 2", 1 },
  899. /*242*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C \0131*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 21 0C EE 1F 78 0F 04 21 72 5E 21 13 97 FE 2B 81 68 FE", "process_p 1", 1 },
  900. /*243*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C\013 1*B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 FE 0C EE 13 8A 5E 21 13 97 08 9B 64 7E FE 42 2B 81 68 FE", "process_p 0", 1 },
  901. /*244*/ { UNICODE_MODE | FAST_MODE, 0, -1, -1, -1, "A*B>C 1A*B>C 1*\013B>C 1A*B>C 1A*", 0, 0, 22, 22, 1, "(50) EE 57 B8 0F 04 21 72 5E 21 13 8A FE 0C EE 5E 21 13 97 08 9B 64 7E FE 42 2B 81 68 FE", "process_p 0", 1 },
  902. };
  903. const int data_size = ARRAY_SIZE(data);
  904. int i, length, ret;
  905. struct zint_symbol *symbol = NULL;
  906. char escaped[8192];
  907. char cmp_buf[32768];
  908. char cmp_msg[1024];
  909. int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
  910. int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
  911. testStartSymbol("test_input", &symbol);
  912. for (i = 0; i < data_size; i++) {
  913. if (testContinue(p_ctx, i)) continue;
  914. symbol = ZBarcode_Create();
  915. assert_nonnull(symbol, "Symbol not created\n");
  916. symbol->debug = ZINT_DEBUG_TEST; /* Needed to get codeword dump in errtxt */
  917. length = testUtilSetSymbol(symbol, BARCODE_DATAMATRIX, data[i].input_mode, data[i].eci, -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options, data[i].data, -1, debug);
  918. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  919. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  920. if (p_ctx->generate) {
  921. printf(" /*%3d*/ { %s, %d, %d, %s, %s, \"%s\", %s, %d, %d, %d, %d, \"%s\", \"%s\", %d },\n",
  922. i, testUtilInputModeName(data[i].input_mode), data[i].eci, data[i].option_2,
  923. testUtilOption3Name(BARCODE_DATAMATRIX, data[i].option_3),
  924. testUtilOutputOptionsName(data[i].output_options), testUtilEscape(data[i].data, length, escaped, sizeof(escaped)),
  925. testUtilErrorName(data[i].ret), ret < ZINT_ERROR ? symbol->eci : -1, symbol->rows, symbol->width,
  926. data[i].bwipp_cmp, symbol->errtxt, data[i].comment, data[i].expected_diff);
  927. } else {
  928. if (ret < ZINT_ERROR) {
  929. assert_equal(symbol->eci, data[i].expected_eci, "i:%d eci %d != %d\n", i, symbol->eci, data[i].expected_eci);
  930. assert_equal(symbol->rows, data[i].expected_rows, "i:%d rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
  931. assert_equal(symbol->width, data[i].expected_width, "i:%d width %d != %d\n", i, symbol->width, data[i].expected_width);
  932. }
  933. assert_zero(strcmp(symbol->errtxt, data[i].expected), "i:%d strcmp(%s, %s) != 0\n", i, symbol->errtxt, data[i].expected);
  934. if (ret < ZINT_ERROR) {
  935. if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
  936. if (!data[i].bwipp_cmp) {
  937. if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
  938. } else {
  939. char modules_dump[144 * 144 + 1];
  940. assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
  941. ret = testUtilBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, data[i].data, length, NULL, cmp_buf, sizeof(cmp_buf), NULL);
  942. assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  943. ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, modules_dump);
  944. assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
  945. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, modules_dump);
  946. }
  947. }
  948. if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
  949. int cmp_len, ret_len;
  950. char modules_dump[144 * 144 + 1];
  951. assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
  952. ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
  953. assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  954. ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
  955. assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
  956. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
  957. }
  958. }
  959. #ifdef ZINT_TEST_ENCODING
  960. if (ret < ZINT_ERROR) {
  961. if (i && (data[i].input_mode & 0x07) == (data[i - 1].input_mode & 0x07) && !(data[i].input_mode & FAST_MODE) && (data[i - 1].input_mode & FAST_MODE)
  962. && data[i].eci == data[i - 1].eci && data[i].option_2 == data[i - 1].option_2
  963. && data[i].option_3 == data[i - 1].option_3 && data[i].output_options == data[i - 1].output_options
  964. && strcmp(data[i].data, data[i - 1].data) == 0) {
  965. unsigned char binary[2][2200];
  966. int gs1;
  967. int binlen;
  968. int binlens[2] = {0};
  969. unsigned char reduced[1000];
  970. unsigned char *text;
  971. assert_equal(data[i].expected_rows * data[i].expected_width <= data[i - 1].expected_rows * data[i - 1].expected_width, 1,
  972. "i:%d data[i].expected_rows * data[i].expected_width %d > data[i - 1].expected_rows * data[i - 1].expected_width %d\n", i,
  973. data[i].expected_rows * data[i].expected_width, data[i - 1].expected_rows * data[i - 1].expected_width);
  974. if ((data[i].input_mode & 0x07) == GS1_MODE) {
  975. ret = gs1_verify(symbol, (unsigned char *) data[i].data, length, reduced);
  976. assert_zero(ret, "i:%d gs1_verify() ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  977. length = (int) ustrlen(reduced);
  978. text = reduced;
  979. } else {
  980. text = (unsigned char *) data[i].data;
  981. }
  982. binlen = 0;
  983. symbol->input_mode = data[i - 1].input_mode;
  984. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  985. ret = dm_encode_test(symbol, text, length, symbol->eci, gs1, binary[0], &binlen);
  986. assert_zero(ret, "i:%d dm_encode() FAST_MODE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  987. binlens[0] = binlen;
  988. binlen = 0;
  989. symbol->input_mode = data[i].input_mode;
  990. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  991. ret = dm_encode_test(symbol, text, length, symbol->eci, gs1, binary[1], &binlen);
  992. assert_zero(ret, "i:%d dm_encode() minimal ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  993. binlens[1] = binlen;
  994. assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
  995. i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
  996. if (data[i].expected_diff >= 0) {
  997. assert_equal(binlens[1] <= binlens[0], 1, "i:%d binlens[1] %d > binlens[0] %d\n", i, binlens[1], binlens[0]);
  998. }
  999. }
  1000. }
  1001. #endif
  1002. }
  1003. ZBarcode_Delete(symbol);
  1004. }
  1005. testFinish();
  1006. }
  1007. static void test_encode(const testCtx *const p_ctx) {
  1008. int debug = p_ctx->debug;
  1009. struct item {
  1010. int symbology;
  1011. int input_mode;
  1012. int eci;
  1013. int output_options;
  1014. int option_2;
  1015. int option_3;
  1016. char *data;
  1017. int length;
  1018. int ret;
  1019. int expected_rows;
  1020. int expected_width;
  1021. int bwipp_cmp;
  1022. char *comment;
  1023. int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
  1024. char *expected;
  1025. };
  1026. /* Verified manually against ISO/IEC 16022:2006, ISO/IEC 21471:2020, GS1 General Specifications 21.0.1 (GGS), ANSI/HIBC LIC 2.6-2016 (HIBC/LIC),
  1027. ANSI/HIBC PAS 1.3-2010 (HIBC/PAS) and AIM ITS/04-023:2022 (ECI Part 3: Register), with noted exceptions
  1028. */
  1029. static const struct item data[] = {
  1030. /* 0*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "1234abcd", -1, 0, 14, 14, 1, "", 0,
  1031. "10101010101010"
  1032. "11001010001111"
  1033. "11000101100100"
  1034. "11001001100001"
  1035. "11011001110000"
  1036. "10100101011001"
  1037. "10101110011000"
  1038. "10011101100101"
  1039. "10100001001000"
  1040. "10101000001111"
  1041. "11101100000010"
  1042. "11010010100101"
  1043. "10011111000100"
  1044. "11111111111111"
  1045. },
  1046. /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "1234abcd", -1, 0, 14, 14, 1, "", 0,
  1047. "10101010101010"
  1048. "11001010001111"
  1049. "11000101100100"
  1050. "11001001100001"
  1051. "11011001110000"
  1052. "10100101011001"
  1053. "10101110011000"
  1054. "10011101100101"
  1055. "10100001001000"
  1056. "10101000001111"
  1057. "11101100000010"
  1058. "11010010100101"
  1059. "10011111000100"
  1060. "11111111111111"
  1061. },
  1062. /* 2*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 18, 18, 1, "16022:2006 Figure 1", 0,
  1063. "101010101010101010"
  1064. "101000101010001111"
  1065. "101100000111000010"
  1066. "100000101110100111"
  1067. "100100000100011100"
  1068. "101011111010101111"
  1069. "100110011111110110"
  1070. "110011101111111101"
  1071. "111111111101111100"
  1072. "101110110100101101"
  1073. "100010110101001110"
  1074. "101101111001100001"
  1075. "110001101010011110"
  1076. "110110100000100011"
  1077. "101101001101011010"
  1078. "100010011001011011"
  1079. "100011000000100100"
  1080. "111111111111111111"
  1081. },
  1082. /* 3*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 18, 18, 1, "16022:2006 Figure 1", 0,
  1083. "101010101010101010"
  1084. "101000101010001111"
  1085. "101100000111000010"
  1086. "100000101110100111"
  1087. "100100000100011100"
  1088. "101011111010101111"
  1089. "100110011111110110"
  1090. "110011101111111101"
  1091. "111111111101111100"
  1092. "101110110100101101"
  1093. "100010110101001110"
  1094. "101101111001100001"
  1095. "110001101010011110"
  1096. "110110100000100011"
  1097. "101101001101011010"
  1098. "100010011001011011"
  1099. "100011000000100100"
  1100. "111111111111111111"
  1101. },
  1102. /* 4*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "123456", -1, 0, 10, 10, 1, "16022:2006 Figure O.2", 0,
  1103. "1010101010"
  1104. "1100101101"
  1105. "1100000100"
  1106. "1100011101"
  1107. "1100001000"
  1108. "1000001111"
  1109. "1110110000"
  1110. "1111011001"
  1111. "1001110100"
  1112. "1111111111"
  1113. },
  1114. /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "123456", -1, 0, 10, 10, 1, "16022:2006 Figure O.2", 0,
  1115. "1010101010"
  1116. "1100101101"
  1117. "1100000100"
  1118. "1100011101"
  1119. "1100001000"
  1120. "1000001111"
  1121. "1110110000"
  1122. "1111011001"
  1123. "1001110100"
  1124. "1111111111"
  1125. },
  1126. /* 6*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "30Q324343430794<OQQ", -1, 0, 16, 16, 1, "16022:2006 Figure R.1", 0,
  1127. "1010101010101010"
  1128. "1010101010000001"
  1129. "1010101011101100"
  1130. "1010101010110011"
  1131. "1010101010001100"
  1132. "1010101010001101"
  1133. "1010101010000100"
  1134. "1010101001101001"
  1135. "1010101010000110"
  1136. "1000001001011001"
  1137. "1111111110000100"
  1138. "1101100110010101"
  1139. "1111111001100100"
  1140. "1110010111100101"
  1141. "1110010010100010"
  1142. "1111111111111111"
  1143. },
  1144. /* 7*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "30Q324343430794<OQQ", -1, 0, 16, 16, 1, "16022:2006 Figure R.1", 0,
  1145. "1010101010101010"
  1146. "1010101010000001"
  1147. "1010101011101100"
  1148. "1010101010110011"
  1149. "1010101010001100"
  1150. "1010101010001101"
  1151. "1010101010000100"
  1152. "1010101001101001"
  1153. "1010101010000110"
  1154. "1000001001011001"
  1155. "1111111110000100"
  1156. "1101100110010101"
  1157. "1111111001100100"
  1158. "1110010111100101"
  1159. "1110010010100010"
  1160. "1111111111111111"
  1161. },
  1162. /* 8*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 32, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 8, 64, 1, "21471:2020 Figure 1", 0,
  1163. "1010101010101010101010101010101010101010101010101010101010101010"
  1164. "1010001010111001101010111011111110001110000000011101010100010101"
  1165. "1011000000000110110111111110111010110000101001101101001000010110"
  1166. "1000001000110011110001111011111110001100101010111011111111001111"
  1167. "1001000111011100101010110001011010010111001000101111101011101100"
  1168. "1010101011111011100000000001000110101110011111011000101011000111"
  1169. "1101101100110110111100110000001011100011001001101011001001001000"
  1170. "1111111111111111111111111111111111111111111111111111111111111111"
  1171. },
  1172. /* 9*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 32, -1, "A1B2C3D4E5F6G7H8I9J0K1L2", -1, 0, 8, 64, 1, "21471:2020 Figure 1", 0,
  1173. "1010101010101010101010101010101010101010101010101010101010101010"
  1174. "1010001010111001101010111011111110001110000000011101010100010101"
  1175. "1011000000000110110111111110111010110000101001101101001000010110"
  1176. "1000001000110011110001111011111110001100101010111011111111001111"
  1177. "1001000111011100101010110001011010010111001000101111101011101100"
  1178. "1010101011111011100000000001000110101110011111011000101011000111"
  1179. "1101101100110110111100110000001011100011001001101011001001001000"
  1180. "1111111111111111111111111111111111111111111111111111111111111111"
  1181. },
  1182. /* 10*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 31, -1, "123456789012345678901234567890123456", -1, 0, 8, 48, 1, "21471:2020 Figure H.3", 0,
  1183. "101010101010101010101010101010101010101010101010"
  1184. "110010010100000111110001101001010110100110001011"
  1185. "110011000111101000101010110111001110011011011010"
  1186. "110001110010001100001001100011001100110111000111"
  1187. "111010010010110111101000110001110001000011000000"
  1188. "100011010010011010111111111101010010100111000001"
  1189. "101101111110001011010010111010001111110101101110"
  1190. "111111111111111111111111111111111111111111111111"
  1191. },
  1192. /* 11*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 31, -1, "123456789012345678901234567890123456", -1, 0, 8, 48, 1, "21471:2020 Figure H.3", 0,
  1193. "101010101010101010101010101010101010101010101010"
  1194. "110010010100000111110001101001010110100110001011"
  1195. "110011000111101000101010110111001110011011011010"
  1196. "110001110010001100001001100011001100110111000111"
  1197. "111010010010110111101000110001110001000011000000"
  1198. "100011010010011010111111111101010010100111000001"
  1199. "101101111110001011010010111010001111110101101110"
  1200. "111111111111111111111111111111111111111111111111"
  1201. },
  1202. /* 12*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, 29, -1, "30Q324343430794<OQ", -1, 0, 16, 36, 1, "21471:2020 Figure J.1 NOTE: single Q at end, not 2; also not DMRE", 0,
  1203. "101010101010101010101010101010101010"
  1204. "101010101000000101111110101011001101"
  1205. "101010101101111110111111101110001100"
  1206. "101010110010101011111000000010111101"
  1207. "101010100010101100110101100100100100"
  1208. "101010100100011001100110110111011001"
  1209. "101010100010101000110100010111010110"
  1210. "101010100110000111101110001110111001"
  1211. "101010101001110110110000111010000100"
  1212. "100000110100111111111110101010100001"
  1213. "111101010100100110110011100001011000"
  1214. "110100100100010001100111011111001111"
  1215. "101100100100000000111011111010010100"
  1216. "100111011010111111100011010011001001"
  1217. "101111001001100000110110100000010110"
  1218. "111111111111111111111111111111111111"
  1219. },
  1220. /* 13*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, 29, -1, "30Q324343430794<OQ", -1, 0, 16, 36, 1, "21471:2020 Figure J.1 NOTE: single Q at end, not 2; also not DMRE", 0,
  1221. "101010101010101010101010101010101010"
  1222. "101010101000000101111110101011001101"
  1223. "101010101101111110111111101110001100"
  1224. "101010110010101011111000000010111101"
  1225. "101010100010101100110101100100100100"
  1226. "101010100100011001100110110111011001"
  1227. "101010100010101000110100010111010110"
  1228. "101010100110000111101110001110111001"
  1229. "101010101001110110110000111010000100"
  1230. "100000110100111111111110101010100001"
  1231. "111101010100100110110011100001011000"
  1232. "110100100100010001100111011111001111"
  1233. "101100100100000000111011111010010100"
  1234. "100111011010111111100011010011001001"
  1235. "101111001001100000110110100000010110"
  1236. "111111111111111111111111111111111111"
  1237. },
  1238. /* 14*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 22, 22, 0, "GGS Figure 2.1.13.1 (and 5.1-9) same; note not GS1; BWIPP different encodation", 0,
  1239. "1010101010101010101010"
  1240. "1100101110000001111101"
  1241. "1001010101111000101010"
  1242. "1000000100111100110001"
  1243. "1101010111000111100100"
  1244. "1101110001010000001101"
  1245. "1110100101010101011010"
  1246. "1101101101110101100111"
  1247. "1111010000000001100100"
  1248. "1100011001100101001111"
  1249. "1000111100001111010010"
  1250. "1011111101110101111011"
  1251. "1100110101001101101010"
  1252. "1011010101000110011101"
  1253. "1000000110110000011110"
  1254. "1011011100011000011001"
  1255. "1110000001110111001000"
  1256. "1100101000000101110001"
  1257. "1111101100001110001010"
  1258. "1110110101100110000101"
  1259. "1101100001100010010100"
  1260. "1111111111111111111111"
  1261. },
  1262. /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 22, 22, 0, "GGS Figure 2.1.13.1 (and 5.1-9) **NOT SAME** (see FAST_MODE); BWIPP different encodation", 0,
  1263. "1010101010101010101010"
  1264. "1100101110011010111101"
  1265. "1001010101110111101110"
  1266. "1000000100111000010001"
  1267. "1101010111011000110100"
  1268. "1101110001110000100101"
  1269. "1110100101000101000000"
  1270. "1101101110110101011111"
  1271. "1111010011000001111100"
  1272. "1100011101100100110111"
  1273. "1000100000000000011010"
  1274. "1011000101110000101111"
  1275. "1100011101000100000010"
  1276. "1011010101010011111101"
  1277. "1000000100010111001110"
  1278. "1011011100010000110001"
  1279. "1110001101011000000000"
  1280. "1100101101101011001001"
  1281. "1111110111001111110010"
  1282. "1110000101101111110001"
  1283. "1101110001101001110000"
  1284. "1111111111111111111111"
  1285. },
  1286. /* 16*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09501101530003[17]150119[10]AB-123", -1, 0, 20, 20, 1, "GGS Figure 2.6.14-3", 0,
  1287. "10101010101010101010"
  1288. "11001111010100000111"
  1289. "10001010001001010100"
  1290. "10110011010100010001"
  1291. "11101010000001101010"
  1292. "10000100111011010111"
  1293. "10011010101101010110"
  1294. "11010001001110101001"
  1295. "11101000110100101100"
  1296. "11001111010111001101"
  1297. "10001010000001100000"
  1298. "11010000100010111011"
  1299. "10110010011000001000"
  1300. "10011010000011010011"
  1301. "11111010101110100110"
  1302. "11010010111011100001"
  1303. "11010100101100111110"
  1304. "11000001110010010101"
  1305. "10011011100101011010"
  1306. "11111111111111111111"
  1307. },
  1308. /* 17*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09501101530003[17]150119[10]AB-123", -1, 0, 20, 20, 0, "GGS Figure 2.6.14-3 **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  1309. "10101010101010101010"
  1310. "11001111010100110111"
  1311. "10001010001000000100"
  1312. "10110011010100010001"
  1313. "11101010000010000110"
  1314. "10000100111010000011"
  1315. "10011010010110110110"
  1316. "11010001110011000111"
  1317. "11101001001111011000"
  1318. "11001111110001101101"
  1319. "10001010011001111000"
  1320. "11010110100010110011"
  1321. "10100011111111110000"
  1322. "10000111011001111111"
  1323. "11001010111100001010"
  1324. "11010111111001011001"
  1325. "11011000000010110010"
  1326. "11000001110001000101"
  1327. "10011010100111101010"
  1328. "11111111111111111111"
  1329. },
  1330. /* 18*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]04012345678901[21]ABCDEFG123456789", -1, 0, 20, 20, 1, "GGS Figure 2.6.14-4", 0,
  1331. "10101010101010101010"
  1332. "11011000001101000111"
  1333. "10001001100001110100"
  1334. "10110110110000010001"
  1335. "11100010000111110110"
  1336. "10101010110011101101"
  1337. "11111000100000100010"
  1338. "10010010001011110001"
  1339. "10101010110011010110"
  1340. "11011110011010001111"
  1341. "10001010011101010010"
  1342. "10111111011110110011"
  1343. "11110100101101011000"
  1344. "11010111011100100111"
  1345. "10000000011001100000"
  1346. "11101111110100001011"
  1347. "11010001001000101010"
  1348. "11010011101000100101"
  1349. "10001000100001111010"
  1350. "11111111111111111111"
  1351. },
  1352. /* 19*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]04012345678901[21]ABCDEFG123456789", -1, 0, 20, 20, 0, "GGS Figure 2.6.14-4 **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  1353. "10101010101010101010"
  1354. "11011000000001000111"
  1355. "10001001100100101100"
  1356. "10110111100001100001"
  1357. "11100011100100010010"
  1358. "10101010001110001101"
  1359. "11111000011000001010"
  1360. "10010010011111000111"
  1361. "10101010111000110000"
  1362. "11011101100110100111"
  1363. "10001000101110110010"
  1364. "10111010011110011011"
  1365. "11111111110111101110"
  1366. "11000010011001101001"
  1367. "11101100000101001000"
  1368. "11101001011100110001"
  1369. "11100100011000111100"
  1370. "11001010100011000101"
  1371. "10001000111000110010"
  1372. "11111111111111111111"
  1373. },
  1374. /* 20*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]04012345678901[17]170101[10]ABC123", -1, 0, 20, 20, 1, "GGS Figure 4.15-1 (and 5.1-6)", 0,
  1375. "10101010101010101010"
  1376. "11011000010100000111"
  1377. "10001001100001010100"
  1378. "10110111001100000001"
  1379. "11100010000101101110"
  1380. "10101100110001010101"
  1381. "11111010101000100110"
  1382. "10010011001000100011"
  1383. "10101000110010111010"
  1384. "11001111001010101111"
  1385. "10001010000111000010"
  1386. "10110000010101000011"
  1387. "11110010000001011000"
  1388. "11011000000110101111"
  1389. "11111010111011110110"
  1390. "11001001001110101111"
  1391. "11011010000001110010"
  1392. "11010111010111101101"
  1393. "10001000000101111010"
  1394. "11111111111111111111"
  1395. },
  1396. /* 21*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]04012345678901[17]170101[10]ABC123", -1, 0, 20, 20, 0, "GGS Figure 4.15-1 (and 5.1-6) **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  1397. "10101010101010101010"
  1398. "11011000010100110111"
  1399. "10001001100000000100"
  1400. "10110111001100001001"
  1401. "11100010000010010010"
  1402. "10101100111000111001"
  1403. "11111010110001000010"
  1404. "10010011110100101101"
  1405. "10101001001100100000"
  1406. "11001111101110100111"
  1407. "10001010010101101010"
  1408. "10110110111100101011"
  1409. "11100011111111010000"
  1410. "11000010100100111011"
  1411. "11001101000111010110"
  1412. "11011110010111110111"
  1413. "11011001111011011110"
  1414. "11010110010111111101"
  1415. "10001010100111001010"
  1416. "11111111111111111111"
  1417. },
  1418. /* 22*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, GS1_GS_SEPARATOR, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-1 **NOT SAME**, uses 0-padded final TEXT triplet", 0,
  1419. "10101010101010101010101010101010"
  1420. "11001111010000111101100000101001"
  1421. "10001010011111001011011001000010"
  1422. "10111011001001111101111101000101"
  1423. "11100101000010001000011011011110"
  1424. "10000101001101111010111000100101"
  1425. "10010001000100101000000010011110"
  1426. "10010110011101011000101100101111"
  1427. "11101010110010001100011100110100"
  1428. "11011100110110111101010000010001"
  1429. "10001010000101001100001111001110"
  1430. "10110011010101111000010011100001"
  1431. "11101100100110101110101000010110"
  1432. "11100100000000111000000111111001"
  1433. "10100010111011101001110100100010"
  1434. "11111111111111111111111111111111"
  1435. "10101010101010101010101010101010"
  1436. "11100011100010011011000101111111"
  1437. "11001100001101001110011000000010"
  1438. "10111011011110111100010111011101"
  1439. "11101011011111101101101100000110"
  1440. "10010000011010011111000000111111"
  1441. "11000101110000101100110001100100"
  1442. "10000010111011011111010001010011"
  1443. "10110011100011001101101100110110"
  1444. "10111010111101011000100010111001"
  1445. "10010011101110101110010011010110"
  1446. "11101011001100011011001001000001"
  1447. "10001011111000001010010011110000"
  1448. "11001011000110111111100011000001"
  1449. "10110110011000001010011010011000"
  1450. "11111111111111111111111111111111"
  1451. },
  1452. /* 23*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, GS1_GS_SEPARATOR, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-1 **NOT SAME**, uses 0-padded final TEXT triplet", 0,
  1453. "10101010101010101010101010101010"
  1454. "11001111010000111101100000101001"
  1455. "10001010011111001011011001000010"
  1456. "10111011001001111101111101000101"
  1457. "11100101000010001000011011011110"
  1458. "10000101001101111010111000100101"
  1459. "10010001000100101000000010011110"
  1460. "10010110011101011000101100101111"
  1461. "11101010110010001100011100110100"
  1462. "11011100110110111101010000010001"
  1463. "10001010000101001100001111001110"
  1464. "10110011010101111000010011100001"
  1465. "11101100100110101110101000010110"
  1466. "11100100000000111000000111111001"
  1467. "10100010111011101001110100100010"
  1468. "11111111111111111111111111111111"
  1469. "10101010101010101010101010101010"
  1470. "11100011100010011011000101111111"
  1471. "11001100001101001110011000000010"
  1472. "10111011011110111100010111011101"
  1473. "11101011011111101101101100000110"
  1474. "10010000011010011111000000111111"
  1475. "11000101110000101100110001100100"
  1476. "10000010111011011111010001010011"
  1477. "10110011100011001101101100110110"
  1478. "10111010111101011000100010111001"
  1479. "10010011101110101110010011010110"
  1480. "11101011001100011011001001000001"
  1481. "10001011111000001010010011110000"
  1482. "11001011000110111111100011000001"
  1483. "10110110011000001010011010011000"
  1484. "11111111111111111111111111111111"
  1485. },
  1486. /* 24*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-2 (and 4.15.1-3) **NOT SAME**, uses 0-padded final TEXT triplet (as does tec-it)", 0,
  1487. "10101010101010101010101010101010"
  1488. "11001111010000111101100000101001"
  1489. "10001010011111001011011001000010"
  1490. "10111011001001111101111101000101"
  1491. "11100101000010001000011011011110"
  1492. "10000101001101111010111000100101"
  1493. "10010001110100101000000010011110"
  1494. "10010110101101011000101100101111"
  1495. "11101010000010001100011100110100"
  1496. "11011100110110111101010000011001"
  1497. "10001010000101001100000111001010"
  1498. "10110011010101111000010011010101"
  1499. "11101100100110101110101111011110"
  1500. "11100100000000111000011101100111"
  1501. "10100010111011101010010111001010"
  1502. "11111111111111111111111111111111"
  1503. "10101010101010101010101010101010"
  1504. "11111011100010011000001101110111"
  1505. "11010100001101101010111001101010"
  1506. "10100011011110111011111010110101"
  1507. "11101011011111001001000000111110"
  1508. "10010000011001011101001101100011"
  1509. "11000101110110001010111111110000"
  1510. "10000010110011111100011111010101"
  1511. "10110011011011001011010010110100"
  1512. "10111010110110111011000101100001"
  1513. "10010010000011101101011111110110"
  1514. "11101000010110011011011101111001"
  1515. "10001100011101101000101011001100"
  1516. "11000001011001011111011001010001"
  1517. "10110000011010101010011010011000"
  1518. "11111111111111111111111111111111"
  1519. },
  1520. /* 25*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09504000059101[21]12345678p901[10]1234567p[17]141120[8200]http://www.gs1.org/demo/", -1, 0, 32, 32, 1, "GGS Figure 4.15.1-2 (and 4.15.1-3) **NOT SAME**, uses 0-padded final TEXT triplet (as does tec-it)", 0,
  1521. "10101010101010101010101010101010"
  1522. "11001111010000111101100000101001"
  1523. "10001010011111001011011001000010"
  1524. "10111011001001111101111101000101"
  1525. "11100101000010001000011011011110"
  1526. "10000101001101111010111000100101"
  1527. "10010001110100101000000010011110"
  1528. "10010110101101011000101100101111"
  1529. "11101010000010001100011100110100"
  1530. "11011100110110111101010000011001"
  1531. "10001010000101001100000111001010"
  1532. "10110011010101111000010011010101"
  1533. "11101100100110101110101111011110"
  1534. "11100100000000111000011101100111"
  1535. "10100010111011101010010111001010"
  1536. "11111111111111111111111111111111"
  1537. "10101010101010101010101010101010"
  1538. "11111011100010011000001101110111"
  1539. "11010100001101101010111001101010"
  1540. "10100011011110111011111010110101"
  1541. "11101011011111001001000000111110"
  1542. "10010000011001011101001101100011"
  1543. "11000101110110001010111111110000"
  1544. "10000010110011111100011111010101"
  1545. "10110011011011001011010010110100"
  1546. "10111010110110111011000101100001"
  1547. "10010010000011101101011111110110"
  1548. "11101000010110011011011101111001"
  1549. "10001100011101101000101011001100"
  1550. "11000001011001011111011001010001"
  1551. "10110000011010101010011010011000"
  1552. "11111111111111111111111111111111"
  1553. },
  1554. /* 26*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09524000059109[21]12345678p901[10]1234567p[17]271120", -1, 0, 22, 22, 1, "GGS v23 Figure 4.15.1-1 (and 4.15.1-3 and 4.15.1-4)", 0,
  1555. "1010101010101010101010"
  1556. "1100111101000011000111"
  1557. "1000101101111100100100"
  1558. "1011101100100110001001"
  1559. "1110010100001000011100"
  1560. "1000010100110100101101"
  1561. "1001000111010000011000"
  1562. "1001011010110001101111"
  1563. "1110101000001000100100"
  1564. "1101110011011000101001"
  1565. "1001101000010110100010"
  1566. "1011001101011011001001"
  1567. "1110110011101011011010"
  1568. "1110010101001100110001"
  1569. "1010001000011110011100"
  1570. "1111101111110110001111"
  1571. "1101011110011111010010"
  1572. "1010001011101101101101"
  1573. "1110010011011110100010"
  1574. "1001011100110011100111"
  1575. "1001110001100110100100"
  1576. "1111111111111111111111"
  1577. },
  1578. /* 27*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]09512345678901[15]170810[21]abcde", -1, 0, 20, 20, 1, "GGS Figure 5.6.2-1", 0,
  1579. "10101010101010101010"
  1580. "11001111010111100111"
  1581. "10001010100101010100"
  1582. "10110111010010011001"
  1583. "11100010010101101110"
  1584. "10101100101000111101"
  1585. "11111010011000000110"
  1586. "10010011100000101101"
  1587. "10101001101011000010"
  1588. "11000110000100011111"
  1589. "10001011010001100010"
  1590. "10110000101001000011"
  1591. "11110011011001011100"
  1592. "11011101001000101011"
  1593. "11111101001000110110"
  1594. "11011100110000101111"
  1595. "11000100001111110000"
  1596. "11011111110010101101"
  1597. "10011010101001110010"
  1598. "11111111111111111111"
  1599. },
  1600. /* 28*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]09512345678901[15]170810[21]abcde", -1, 0, 20, 20, 1, "GGS Figure 5.6.2-1", 0,
  1601. "10101010101010101010"
  1602. "11001111010111100111"
  1603. "10001010100101010100"
  1604. "10110111010010011001"
  1605. "11100010010101101110"
  1606. "10101100101000111101"
  1607. "11111010011000000110"
  1608. "10010011100000101101"
  1609. "10101001101011000010"
  1610. "11000110000100011111"
  1611. "10001011010001100010"
  1612. "10110000101001000011"
  1613. "11110011011001011100"
  1614. "11011101001000101011"
  1615. "11111101001000110110"
  1616. "11011100110000101111"
  1617. "11000100001111110000"
  1618. "11011111110010101101"
  1619. "10011010101001110010"
  1620. "11111111111111111111"
  1621. },
  1622. /* 29*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]00012345678905[17]040115", -1, 0, 12, 26, 1, "GGS Figure 5.6.3.1-1 (left)", 0,
  1623. "10101010101010101010101010"
  1624. "11001000010011010100111111"
  1625. "10001001100010001111001010"
  1626. "10110111011000001001001111"
  1627. "11100010100100100010001100"
  1628. "10101100110101011101101001"
  1629. "11111000111110101001010010"
  1630. "10011111101010111001100001"
  1631. "10101110101000110000010010"
  1632. "11001101010110000111100111"
  1633. "10001001100010100010100000"
  1634. "11111111111111111111111111"
  1635. },
  1636. /* 30*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]00012345678905[17]040115", -1, 0, 12, 26, 1, "GGS Figure 5.6.3.1-1 (left)", 0,
  1637. "10101010101010101010101010"
  1638. "11001000010011010100111111"
  1639. "10001001100010001111001010"
  1640. "10110111011000001001001111"
  1641. "11100010100100100010001100"
  1642. "10101100110101011101101001"
  1643. "11111000111110101001010010"
  1644. "10011111101010111001100001"
  1645. "10101110101000110000010010"
  1646. "11001101010110000111100111"
  1647. "10001001100010100010100000"
  1648. "11111111111111111111111111"
  1649. },
  1650. /* 31*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "[01]00012345678905[17]040115", -1, 0, 18, 18, 1, "GGS Figure 5.6.3.1-1 (right)", 0,
  1651. "101010101010101010"
  1652. "110010000100010101"
  1653. "100010011010111110"
  1654. "101101110001101111"
  1655. "111000100010101100"
  1656. "101011001100010001"
  1657. "111110000010101010"
  1658. "100101100110101101"
  1659. "101010101001110110"
  1660. "110011110001110011"
  1661. "100000111010111100"
  1662. "111100000000010111"
  1663. "111011010101010010"
  1664. "111111111001001011"
  1665. "100011100101010000"
  1666. "111100011101000011"
  1667. "100000101110000100"
  1668. "111111111111111111"
  1669. },
  1670. /* 32*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, DM_SQUARE, "[01]00012345678905[17]040115", -1, 0, 18, 18, 1, "GGS Figure 5.6.3.1-1 (right)", 0,
  1671. "101010101010101010"
  1672. "110010000100010101"
  1673. "100010011010111110"
  1674. "101101110001101111"
  1675. "111000100010101100"
  1676. "101011001100010001"
  1677. "111110000010101010"
  1678. "100101100110101101"
  1679. "101010101001110110"
  1680. "110011110001110011"
  1681. "100000111010111100"
  1682. "111100000000010111"
  1683. "111011010101010010"
  1684. "111111111001001011"
  1685. "100011100101010000"
  1686. "111100011101000011"
  1687. "100000101110000100"
  1688. "111111111111111111"
  1689. },
  1690. /* 33*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]ABCDEFGHI123456789[92]abcdefghi", -1, 0, 32, 32, 0, "GGS Figure 5.6.3.2-3 (left) **NOT SAME** different encodation; BWIPP different encodation", 0,
  1691. "10101010101010101010101010101010"
  1692. "11001000010111111000100110101011"
  1693. "10001001100001101100110010100010"
  1694. "10110111001101111110011001000111"
  1695. "11100010001100101100101001011110"
  1696. "10101101101011111110000000100101"
  1697. "11111010010010101101000010011110"
  1698. "10010100101111011101101100101111"
  1699. "10101000101101101111111100110100"
  1700. "11001110011000111111110000001001"
  1701. "10001010001010101101001111001110"
  1702. "11110001000000111101011100101101"
  1703. "11010001111011001000011010000010"
  1704. "11011100101001111001000111111111"
  1705. "10111100101001101111011101000010"
  1706. "11111111111111111111111111111111"
  1707. "10101010101010101010101010101010"
  1708. "11010100111011111001101111100111"
  1709. "11100111010011001011100001001010"
  1710. "11111001010111011101111000110011"
  1711. "11110000000010101101001110000110"
  1712. "11101110000001111011101000010101"
  1713. "11110101001101101101110000001000"
  1714. "10101011000111111010111001100111"
  1715. "11000101010010001100000011101010"
  1716. "11111101110111011001111011001101"
  1717. "11010111011010001000011101001010"
  1718. "10100111111110111101010111100011"
  1719. "10111011111010001001001100101110"
  1720. "10010101001110111101000101111101"
  1721. "11110110001001001010110111010110"
  1722. "11111111111111111111111111111111"
  1723. },
  1724. /* 34*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]ABCDEFGHI123456789[92]abcdefghi", -1, 0, 32, 32, 0, "GGS Figure 5.6.3.2-3 (left) **NOT SAME** different encodation; BWIPP different encodation", 2,
  1725. "10101010101010101010101010101010"
  1726. "11001000010111111001100001001011"
  1727. "10001001100001101101000101000010"
  1728. "10110111001101111011101101000111"
  1729. "11100010001100101000100111011110"
  1730. "10101101101011111010001000100101"
  1731. "11111010010010101110101010011110"
  1732. "10010100101111011100001100101111"
  1733. "10101000101101101011011100110100"
  1734. "11001110011000111101110000001001"
  1735. "10001010001011101101001111010110"
  1736. "11110001000011111101011001001101"
  1737. "11010001111011001000010001011010"
  1738. "11011100100111111001010011011101"
  1739. "10111100100011101100111011001100"
  1740. "11111111111111111111111111111111"
  1741. "10101010101010101010101010101010"
  1742. "11010100101011111001011111001111"
  1743. "11100111111011101011111011100010"
  1744. "11111000010111111101111111010011"
  1745. "11111110100011001011001111101110"
  1746. "11100110000000111010010011110001"
  1747. "11110111000011001010111110001100"
  1748. "10101011001110111001110110001011"
  1749. "11000101100111101010111001100010"
  1750. "11111101001100011001010010000101"
  1751. "11010101100010001011111011111010"
  1752. "10100100100100111100001111011011"
  1753. "10111011101111001100101011101110"
  1754. "10011101001101011100111000111001"
  1755. "11110000001011001010110001000110"
  1756. "11111111111111111111111111111111"
  1757. },
  1758. /* 35*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, 30, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]abcdefghi", -1, 0, 16, 48, 1, "GGS Figure 5.6.3.2-3 (right) **NOT SAME** different encodation", 0,
  1759. "101010101010101010101010101010101010101010101010"
  1760. "110010000101111001000011101101100100111011001111"
  1761. "100010011000011101111100100100011000110010111100"
  1762. "101101110011011100100111100111101110111110100011"
  1763. "111000100011001100111010101000011110001110111110"
  1764. "101011011010110100101101100100010101101110101111"
  1765. "111110100100100101111000101001100001101001001010"
  1766. "100101001011111001111001110110100101101100010111"
  1767. "101010001011111100111100100010000000011110001100"
  1768. "110011100101101010111011110111110111100111011001"
  1769. "100010100011010010111100100100101000001000011110"
  1770. "111100010010101101110001100001000001010110001001"
  1771. "110100001000101000011100101010101100011001001010"
  1772. "110111001110010000011111101111000110100011011011"
  1773. "101110001010001011101010101101111111111000000100"
  1774. "111111111111111111111111111111111111111111111111"
  1775. },
  1776. /* 36*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, 30, -1, "[01]00012345678905[17]180401[21]ABCDEFGHIJKL12345678[91]abcdefghi", -1, 0, 16, 48, 0, "GGS Figure 5.6.3.2-3 (right) **NOT SAME** different encodation; BWIPP same as FAST_MODE", 2,
  1777. "101010101010101010101010101010101010101010101010"
  1778. "110010000101111001000011101101100100111011001111"
  1779. "100010011000011101111100100100011000110010111100"
  1780. "101101110011011100100111100111101110111110100011"
  1781. "111000100011001100111010101000011110001110111110"
  1782. "101011011010110100101101100100010101101110101111"
  1783. "111110100100100101111000101001100001101001001010"
  1784. "100101001011111001111001110110100101101100010111"
  1785. "101010001011111100111100100010000000011110001100"
  1786. "110011100101101010111011110111110111100111011001"
  1787. "100010100011010010111100100100101000001000011110"
  1788. "111100010010101101110001100001000001010110001001"
  1789. "110100001000101000011100101010101100011001001010"
  1790. "110111001110010000011111101111000110100011011011"
  1791. "101110001010001011101010101101111111111000000100"
  1792. "111111111111111111111111111111111111111111111111"
  1793. },
  1794. /* 37*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "[00]395011010013000129[403]123+1021JK+0320+12[421]5281500KM", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-6 **NOT SAME** figure has unnecessary FNC1 at end of data", 0,
  1795. "101010101010101010101010"
  1796. "110001110100011010101101"
  1797. "100010100100101000011000"
  1798. "101000110001001011100001"
  1799. "111010110110100001100010"
  1800. "100001001001010100001111"
  1801. "100110110111100000000100"
  1802. "100101110011001001100001"
  1803. "110000010110101011100010"
  1804. "110011001100011101110101"
  1805. "100000100011111010000000"
  1806. "101010110110011011000001"
  1807. "111010001001101000110000"
  1808. "110001000100011110101101"
  1809. "101011011101110000101000"
  1810. "110111000100011101011111"
  1811. "110101001010111101000010"
  1812. "110000111110111111111001"
  1813. "100101110010001010110110"
  1814. "111011010010000000100111"
  1815. "100110111101001000000100"
  1816. "101111000010010011111101"
  1817. "111001011011101100011010"
  1818. "111111111111111111111111"
  1819. },
  1820. /* 38*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, DM_SQUARE, "[00]395011010013000129[403]123+1021JK+0320+12[421]5281500KM", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-6 **NOT SAME** figure has unnecessary FNC1 at end of data", 0,
  1821. "101010101010101010101010"
  1822. "110001110100011010101101"
  1823. "100010100100101000011000"
  1824. "101000110001001011100001"
  1825. "111010110110100001100010"
  1826. "100001001001010100001111"
  1827. "100110110111100000000100"
  1828. "100101110011001001100001"
  1829. "110000010110101011100010"
  1830. "110011001100011101110101"
  1831. "100000100011111010000000"
  1832. "101010110110011011000001"
  1833. "111010001001101000110000"
  1834. "110001000100011110101101"
  1835. "101011011101110000101000"
  1836. "110111000100011101011111"
  1837. "110101001010111101000010"
  1838. "110000111110111111111001"
  1839. "100101110010001010110110"
  1840. "111011010010000000100111"
  1841. "100110111101001000000100"
  1842. "101111000010010011111101"
  1843. "111001011011101100011010"
  1844. "111111111111111111111111"
  1845. },
  1846. /* 39*/ { BARCODE_DATAMATRIX, GS1_MODE | FAST_MODE, -1, -1, -1, -1, "[00]093123450000000012[421]0362770[401]931234518430GR[403]MEL", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-7 **NOT SAME** different encodation", 0,
  1847. "101010101010101010101010"
  1848. "110011100101100110110101"
  1849. "100010001001111010000100"
  1850. "101001110100001011100011"
  1851. "111000110111000001101010"
  1852. "101011010010100110000111"
  1853. "101110011000011000001100"
  1854. "100101101011010001101001"
  1855. "110000100101011011101110"
  1856. "110010010110101101110001"
  1857. "100010101101001011010000"
  1858. "101010001000100000011001"
  1859. "101000101010000010000100"
  1860. "100110101110101100010101"
  1861. "100010010000111001000000"
  1862. "101000001001111000011011"
  1863. "111110000111001110000010"
  1864. "110001110101001101101111"
  1865. "110111110101100111101110"
  1866. "110100010010101011110101"
  1867. "110011000001011110100010"
  1868. "100111010001010011000101"
  1869. "101110011001110010101010"
  1870. "111111111111111111111111"
  1871. },
  1872. /* 40*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, -1, -1, "[00]093123450000000012[421]0362770[401]931234518430GR[403]MEL", -1, 0, 24, 24, 1, "GGS Figure 6.6.5-7 **NOT SAME** different encodation", 0,
  1873. "101010101010101010101010"
  1874. "110011100101100110110101"
  1875. "100010001001111010000100"
  1876. "101001110100001011100011"
  1877. "111000110111000001101010"
  1878. "101011010010100110000111"
  1879. "101110011000011000001100"
  1880. "100101101011010001101001"
  1881. "110000100101011011101110"
  1882. "110010010110101101110001"
  1883. "100010101101001011010000"
  1884. "101010001000100000011001"
  1885. "101000101010000010000100"
  1886. "100110101110101100010101"
  1887. "100010010000111001000000"
  1888. "101000001001111000011011"
  1889. "111110000111001110000010"
  1890. "110001110101001101101111"
  1891. "110111110101100111101110"
  1892. "110100010010101011110101"
  1893. "110011000001011110100010"
  1894. "100111010001010011000101"
  1895. "101110011001110010101010"
  1896. "111111111111111111111111"
  1897. },
  1898. /* 41*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "A123BJC5D6E71", -1, 0, 16, 16, 0, "HIBC/LIC Figure 3 same; BWIPP different encodation, same no. of codewords", 0,
  1899. "1010101010101010"
  1900. "1011101001111011"
  1901. "1000001100010100"
  1902. "1010101011001111"
  1903. "1100110100101100"
  1904. "1011000001011001"
  1905. "1100010011110100"
  1906. "1000101001100101"
  1907. "1010111011100000"
  1908. "1011000011100011"
  1909. "1000101100111010"
  1910. "1001011100001101"
  1911. "1010010001110100"
  1912. "1101010010001101"
  1913. "1111100111000010"
  1914. "1111111111111111"
  1915. },
  1916. /* 42*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "A123BJC5D6E71", -1, 0, 16, 16, 0, "HIBC/LIC Figure 3 **NOT SAME** (see FAST_MODE); BWIPP different encodation", 0,
  1917. "1010101010101010"
  1918. "1011101100110101"
  1919. "1000110001101100"
  1920. "1010001011110101"
  1921. "1100100001000100"
  1922. "1010011000100001"
  1923. "1001000111111100"
  1924. "1001000100111101"
  1925. "1110000011010110"
  1926. "1011010000000001"
  1927. "1001101100100000"
  1928. "1101101100100111"
  1929. "1101001110100100"
  1930. "1101110011110101"
  1931. "1000100111000010"
  1932. "1111111111111111"
  1933. },
  1934. /* 43*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "A123BJC5D6E71/$$52001510X3", -1, 0, 20, 20, 0, "HIBC/LIC Section 4.3.3 **NOT SAME** different encodation; also figure has weird CRLF after check digit; BWIPP different encodation", 0,
  1935. "10101010101010101010"
  1936. "10111011000101100001"
  1937. "10000110011010101100"
  1938. "10100001100011010101"
  1939. "11010110011011000000"
  1940. "10001010010000010001"
  1941. "11011000100100111110"
  1942. "10000110010001101111"
  1943. "10011010001111111010"
  1944. "10111100100101111001"
  1945. "10000110000111010110"
  1946. "11010111000101001111"
  1947. "10000011101001011100"
  1948. "10110001100101000001"
  1949. "11100001000111011110"
  1950. "10001010000000000101"
  1951. "10010101101111110110"
  1952. "11011011000010010101"
  1953. "10010010010000100010"
  1954. "11111111111111111111"
  1955. },
  1956. /* 44*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "A123BJC5D6E71/$$52001510X3", -1, 0, 20, 20, 0, "HIBC/LIC Section 4.3.3 **NOT SAME** different encodation; also figure has weird CRLF after check digit; BWIPP different encodation", 0,
  1957. "10101010101010101010"
  1958. "10111011011011011001"
  1959. "10001100010010100100"
  1960. "10100010010001101101"
  1961. "11001000111011101010"
  1962. "10100110110001011101"
  1963. "10010011100100100100"
  1964. "10010111010000000011"
  1965. "11100010001011101110"
  1966. "10110100100011101111"
  1967. "10010110001000010010"
  1968. "11010110110001101101"
  1969. "10000011111100100100"
  1970. "10110011010111011001"
  1971. "11100010111111111010"
  1972. "10000110011101011111"
  1973. "10011000110011110100"
  1974. "11000101010100010101"
  1975. "10011111101001100010"
  1976. "11111111111111111111"
  1977. },
  1978. /* 45*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "H123ABC01234567890", -1, 0, 12, 26, 1, "HIBC/LIC Figure C2, same", 0,
  1979. "10101010101010101010101010"
  1980. "10111011011011110101001101"
  1981. "10010110000001001100110100"
  1982. "10010001010100001011110001"
  1983. "11010101011010110100111100"
  1984. "10000101110000001110001101"
  1985. "11011011110011001011100000"
  1986. "10010001101011100010001001"
  1987. "10000001101101100110101010"
  1988. "11001111011110011111010001"
  1989. "10010010001100110000011010"
  1990. "11111111111111111111111111"
  1991. },
  1992. /* 46*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "H123ABC01234567890", -1, 0, 12, 26, 1, "HIBC/LIC Figure C2, same", 0,
  1993. "10101010101010101010101010"
  1994. "10111011011011110101001101"
  1995. "10010110000001001100110100"
  1996. "10010001010100001011110001"
  1997. "11010101011010110100111100"
  1998. "10000101110000001110001101"
  1999. "11011011110011001011100000"
  2000. "10010001101011100010001001"
  2001. "10000001101101100110101010"
  2002. "11001111011110011111010001"
  2003. "10010010001100110000011010"
  2004. "11111111111111111111111111"
  2005. },
  2006. /* 47*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, DM_SQUARE, "/ACMRN123456/V200912190833", -1, 0, 20, 20, 1, "HIBC/PAS Section 2.2 Patient Id, same", 0,
  2007. "10101010101010101010"
  2008. "10001000010011001001"
  2009. "11100110001010110100"
  2010. "10000010111001010101"
  2011. "11011100101010111100"
  2012. "10010001110010100001"
  2013. "11011110100100100110"
  2014. "10110000100000101111"
  2015. "11111100011100001000"
  2016. "11001011011010001101"
  2017. "11001010111110110000"
  2018. "11000001111100001111"
  2019. "11110010001100000100"
  2020. "10011011100010110011"
  2021. "11111100110000111110"
  2022. "11000110111111110001"
  2023. "11000001011001100110"
  2024. "10101010010101100101"
  2025. "10000100100110010010"
  2026. "11111111111111111111"
  2027. },
  2028. /* 48*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, DM_SQUARE, "/ACMRN123456/V200912190833", -1, 0, 20, 20, 0, "HIBC/PAS Section 2.2 Patient Id **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  2029. "10101010101010101010"
  2030. "11000000010011001111"
  2031. "11010001101010110110"
  2032. "11101100111001000001"
  2033. "10001010101010111010"
  2034. "10100001110011010001"
  2035. "10011110100100111110"
  2036. "11110000100001110011"
  2037. "11111100011101010100"
  2038. "11001011000010111101"
  2039. "11001010110111011000"
  2040. "11000001100110010111"
  2041. "11110010111001001100"
  2042. "10011101100110011111"
  2043. "11111010100111110110"
  2044. "11011101010001001011"
  2045. "11011101110001110010"
  2046. "11110001110101111101"
  2047. "11100110100110001010"
  2048. "11111111111111111111"
  2049. },
  2050. /* 49*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/ACMRN123456/V2009121908334\\R\\E", -1, 0, 20, 20, 1, "HIBC/PAS 1.3-2010 Section 2.2 Patient Id Macro, same", 0,
  2051. "10101010101010101010"
  2052. "10000000001110001111"
  2053. "11010101001010011100"
  2054. "11000000011100110101"
  2055. "11011001101011001100"
  2056. "11001100000100010001"
  2057. "11110111101011000100"
  2058. "11010010001101100001"
  2059. "11110010010110011110"
  2060. "11010010010000010011"
  2061. "10010001100010110000"
  2062. "11101100100001000111"
  2063. "11101010000011111100"
  2064. "11000010000101001011"
  2065. "11001110111110010010"
  2066. "11000010110100011101"
  2067. "11001011001001011100"
  2068. "10010110010000010101"
  2069. "11100110001010111010"
  2070. "11111111111111111111"
  2071. },
  2072. /* 50*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/ACMRN123456/V2009121908334\\R\\E", -1, 0, 20, 20, 0, "HIBC/PAS 1.3-2010 Section 2.2 Patient Id Macro **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  2073. "10101010101010101010"
  2074. "11111011001110001111"
  2075. "11100100001010011100"
  2076. "10000000011100111101"
  2077. "11000111101011011100"
  2078. "11110100000101011011"
  2079. "10101111101010010000"
  2080. "10010010001010101111"
  2081. "11110010010110111010"
  2082. "11010010011010110101"
  2083. "10010001110101110010"
  2084. "11101101100101000111"
  2085. "11101010010100101100"
  2086. "11000110100010000111"
  2087. "11001111001101111110"
  2088. "11010111100010100101"
  2089. "11011001111000110010"
  2090. "11011001110001011101"
  2091. "11011111001010100010"
  2092. "11111111111111111111"
  2093. },
  2094. /* 51*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/EO523201", -1, 0, 14, 14, 1, "HIBC/PAS Section 2.2 Purchase Order, same", 0,
  2095. "10101010101010"
  2096. "10011001010101"
  2097. "11101000011010"
  2098. "10001100011101"
  2099. "11101100101100"
  2100. "10100001101111"
  2101. "10010001010110"
  2102. "10000001011001"
  2103. "11100000010100"
  2104. "11011010100101"
  2105. "10111110101110"
  2106. "11110000101101"
  2107. "10010010000100"
  2108. "11111111111111"
  2109. },
  2110. /* 52*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/EO523201", -1, 0, 14, 14, 1, "HIBC/PAS Section 2.2 Purchase Order, same", 0,
  2111. "10101010101010"
  2112. "10011001010101"
  2113. "11101000011010"
  2114. "10001100011101"
  2115. "11101100101100"
  2116. "10100001101111"
  2117. "10010001010110"
  2118. "10000001011001"
  2119. "11100000010100"
  2120. "11011010100101"
  2121. "10111110101110"
  2122. "11110000101101"
  2123. "10010010000100"
  2124. "11111111111111"
  2125. },
  2126. /* 53*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, DM_SQUARE, "/EU720060FF0/O523201", -1, 0, 18, 18, 1, "HIBC/PAS Section 2.2 2nd Purchase Order, same", 0,
  2127. "101010101010101010"
  2128. "100110010100100001"
  2129. "111011110110010110"
  2130. "100000101110011001"
  2131. "111001001010000100"
  2132. "100000000000011101"
  2133. "100101100000101110"
  2134. "111000000111111011"
  2135. "110110111000101010"
  2136. "101001000111000111"
  2137. "100011110101010110"
  2138. "111111001101010011"
  2139. "100000000001101000"
  2140. "110100100011011111"
  2141. "111000100110101110"
  2142. "111010100101000011"
  2143. "111000010011001010"
  2144. "111111111111111111"
  2145. },
  2146. /* 54*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, DM_SQUARE, "/EU720060FF0/O523201", -1, 0, 18, 18, 1, "HIBC/PAS Section 2.2 2nd Purchase Order, same", 0,
  2147. "101010101010101010"
  2148. "100110010100100001"
  2149. "111011110110010110"
  2150. "100000101110011001"
  2151. "111001001010000100"
  2152. "100000000000011101"
  2153. "100101100000101110"
  2154. "111000000111111011"
  2155. "110110111000101010"
  2156. "101001000111000111"
  2157. "100011110101010110"
  2158. "111111001101010011"
  2159. "100000000001101000"
  2160. "110100100011011111"
  2161. "111000100110101110"
  2162. "111010100101000011"
  2163. "111000010011001010"
  2164. "111111111111111111"
  2165. },
  2166. /* 55*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/EU720060FF0/O523201/Z34H159/M9842431340", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (left), same", 0,
  2167. "1010101010101010101010"
  2168. "1001100101001000000011"
  2169. "1110111101100001111010"
  2170. "1000001011101100111111"
  2171. "1110010010010000111100"
  2172. "1000000000011100000111"
  2173. "1001011010011000001110"
  2174. "1110000010001001101001"
  2175. "1101100110001010100100"
  2176. "1010010011011101000101"
  2177. "1000100011010000001110"
  2178. "1111010100101000010111"
  2179. "1000001001011011101110"
  2180. "1111110111111101100011"
  2181. "1001010110011010000000"
  2182. "1101010100110100010011"
  2183. "1001010011000110000000"
  2184. "1111001010100101110111"
  2185. "1100110010110011010000"
  2186. "1100001011100001000111"
  2187. "1010110000010001001000"
  2188. "1111111111111111111111"
  2189. },
  2190. /* 56*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/EU720060FF0/O523201/Z34H159/M9842431340", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (left), same", 0,
  2191. "1010101010101010101010"
  2192. "1001100101001000000011"
  2193. "1110111101100001111010"
  2194. "1000001011101100111111"
  2195. "1110010010010000111100"
  2196. "1000000000011100000111"
  2197. "1001011010011000001110"
  2198. "1110000010001001101001"
  2199. "1101100110001010100100"
  2200. "1010010011011101000101"
  2201. "1000100011010000001110"
  2202. "1111010100101000010111"
  2203. "1000001001011011101110"
  2204. "1111110111111101100011"
  2205. "1001010110011010000000"
  2206. "1101010100110100010011"
  2207. "1001010011000110000000"
  2208. "1111001010100101110111"
  2209. "1100110010110011010000"
  2210. "1100001011100001000111"
  2211. "1010110000010001001000"
  2212. "1111111111111111111111"
  2213. },
  2214. /* 57*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/EU720060FF0/O523201/Z34H159/M9842431340V\\R\\E", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (right), same", 0,
  2215. "1010101010101010101010"
  2216. "1000000000111010011101"
  2217. "1101011100101001011100"
  2218. "1100010000000001101001"
  2219. "1111110110000111100000"
  2220. "1100100000110011001101"
  2221. "1001011001000010000110"
  2222. "1000100101110111110111"
  2223. "1100001001110111111100"
  2224. "1011111001001010001101"
  2225. "1000011000010100101010"
  2226. "1111001101110100101101"
  2227. "1110001101101100001100"
  2228. "1001010101111010110011"
  2229. "1000110111011100101010"
  2230. "1111110011011111010101"
  2231. "1101000011100111101110"
  2232. "1011000010010100110111"
  2233. "1001110101111101000000"
  2234. "1110101001011011000111"
  2235. "1001110110011101101000"
  2236. "1111111111111111111111"
  2237. },
  2238. /* 58*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G+/EU720060FF0/O523201/Z34H159/M9842431340V\\R\\E", -1, 0, 22, 22, 1, "HIBC/PAS Section 2.2 3rd Purchase Order (right), same", 0,
  2239. "1010101010101010101010"
  2240. "1000000000111010011101"
  2241. "1101011100101001011100"
  2242. "1100010000000001101001"
  2243. "1111110110000111100000"
  2244. "1100100000110011001101"
  2245. "1001011001000010000110"
  2246. "1000100101110111110111"
  2247. "1100001001110111111100"
  2248. "1011111001001010001101"
  2249. "1000011000010100101010"
  2250. "1111001101110100101101"
  2251. "1110001101101100001100"
  2252. "1001010101111010110011"
  2253. "1000110111011100101010"
  2254. "1111110011011111010101"
  2255. "1101000011100111101110"
  2256. "1011000010010100110111"
  2257. "1001110101111101000000"
  2258. "1110101001011011000111"
  2259. "1001110110011101101000"
  2260. "1111111111111111111111"
  2261. },
  2262. /* 59*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/E+/KN12345", -1, 0, 16, 16, 1, "HIBC/PAS Section 2.2 Asset Tag **NOT SAME** check digit 'A' in figure is for '/KN12345', but actual data is as given here, when check digit is 'J'", 0,
  2263. "1010101010101010"
  2264. "1001101010001111"
  2265. "1110001000101100"
  2266. "1000110100101101"
  2267. "1101000000110010"
  2268. "1000101001000001"
  2269. "1110000111001100"
  2270. "1010001101111101"
  2271. "1111101010101000"
  2272. "1101100101010001"
  2273. "1100001011010010"
  2274. "1100001111001001"
  2275. "1100010100000110"
  2276. "1010001101001101"
  2277. "1001000000000010"
  2278. "1111111111111111"
  2279. },
  2280. /* 60*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/E+/KN12345", -1, 0, 16, 16, 0, "HIBC/PAS Section 2.2 Asset Tag **NOT SAME** see above; BWIPP same as FAST_MODE", 0,
  2281. "1010101010101010"
  2282. "1100011011001011"
  2283. "1101100111000110"
  2284. "1110111101000011"
  2285. "1010100000010010"
  2286. "1011001001000111"
  2287. "1001100110111110"
  2288. "1100001111011001"
  2289. "1011101101000110"
  2290. "1001011010011111"
  2291. "1111001001000000"
  2292. "1101100000100011"
  2293. "1100110101110000"
  2294. "1100011111111101"
  2295. "1001111001100010"
  2296. "1111111111111111"
  2297. },
  2298. /* 61*/ { BARCODE_HIBC_DM, FAST_MODE, -1, -1, -1, -1, "/LAH123/NC903", -1, 0, 16, 16, 1, "HIBC/PAS Section 2.2 Surgical Instrument, same", 0,
  2299. "1010101010101010"
  2300. "1001010001010001"
  2301. "1110010100000100"
  2302. "1000001100000011"
  2303. "1110001100101000"
  2304. "1000111111100001"
  2305. "1011001110000100"
  2306. "1100110000001101"
  2307. "1000001110010000"
  2308. "1011001110111111"
  2309. "1001011010011010"
  2310. "1111000110111011"
  2311. "1010010101000100"
  2312. "1011001110110101"
  2313. "1100000101010010"
  2314. "1111111111111111"
  2315. },
  2316. /* 62*/ { BARCODE_HIBC_DM, -1, -1, -1, -1, -1, "/LAH123/NC903", -1, 0, 16, 16, 0, "HIBC/PAS Section 2.2 Surgical Instrument **NOT SAME** (see FAST_MODE); BWIPP same as FAST_MODE", 0,
  2317. "1010101010101010"
  2318. "1111000001001111"
  2319. "1110010001010110"
  2320. "1000001101100111"
  2321. "1111000100100100"
  2322. "1000001111111001"
  2323. "1011111000101100"
  2324. "1010000000111101"
  2325. "1001111100000100"
  2326. "1001101000011111"
  2327. "1111010001010110"
  2328. "1000001001111101"
  2329. "1111101010000010"
  2330. "1101010100000101"
  2331. "1110011111101010"
  2332. "1111111111111111"
  2333. },
  2334. /* 63*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, 7, -1, "[)>\\R06\\G18VD89536\\G1P8902A\\GS3122A02965\\R\\E", -1, 0, 22, 22, 1, "ANSI MH10.8.17-2017 Figure 4 Macro06 **NOT SAME** 253-state randomising of padding in figure seems incorrect", 0,
  2335. "1010101010101010101010"
  2336. "1101110000111001011011"
  2337. "1010111010001010001110"
  2338. "1100011100101001000111"
  2339. "1110011000100010001100"
  2340. "1111011100011001000101"
  2341. "1011101101000101111010"
  2342. "1100101100010101010111"
  2343. "1110101001001000001100"
  2344. "1000010001111000110101"
  2345. "1110111001110000001000"
  2346. "1010100011101000011011"
  2347. "1100010101011110111010"
  2348. "1011011000011100011111"
  2349. "1011001001000101100110"
  2350. "1000000111001100000001"
  2351. "1011110001100011000010"
  2352. "1100110100000110100111"
  2353. "1100011111110000001110"
  2354. "1100110010010010001101"
  2355. "1000001010010010110100"
  2356. "1111111111111111111111"
  2357. },
  2358. /* 64*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, 7, -1, "[)>\\R06\\G18VD89536\\G1P8902A\\GS3122A02965\\R\\E", -1, 0, 22, 22, 1, "ANSI MH10.8.17-2017 Figure 4 Macro06 **NOT SAME** 253-state randomising of padding in figure seems incorrect", 0,
  2359. "1010101010101010101010"
  2360. "1101110000111001011011"
  2361. "1010111010001010001110"
  2362. "1100011100101001000111"
  2363. "1110011000100010001100"
  2364. "1111011100011001000101"
  2365. "1011101101000101111010"
  2366. "1100101100010101010111"
  2367. "1110101001001000001100"
  2368. "1000010001111000110101"
  2369. "1110111001110000001000"
  2370. "1010100011101000011011"
  2371. "1100010101011110111010"
  2372. "1011011000011100011111"
  2373. "1011001001000101100110"
  2374. "1000000111001100000001"
  2375. "1011110001100011000010"
  2376. "1100110100000110100111"
  2377. "1100011111110000001110"
  2378. "1100110010010010001101"
  2379. "1000001010010010110100"
  2380. "1111111111111111111111"
  2381. },
  2382. /* 65*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R06\\G25S0614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B7", 0,
  2383. "1010101010101010"
  2384. "1101000010101111"
  2385. "1011100001011100"
  2386. "1011010001010101"
  2387. "1110000110111010"
  2388. "1101010011011111"
  2389. "1000010001111100"
  2390. "1101100111110101"
  2391. "1100101101001100"
  2392. "1010100000001111"
  2393. "1001100010010100"
  2394. "1001000000000101"
  2395. "1011110011000010"
  2396. "1110101111010101"
  2397. "1010101010001010"
  2398. "1111111111111111"
  2399. },
  2400. /* 66*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R06\\G25S0614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B7", 0,
  2401. "1010101010101010"
  2402. "1101000010101111"
  2403. "1011100001011100"
  2404. "1011010001010101"
  2405. "1110000110111010"
  2406. "1101010011011111"
  2407. "1000010001111100"
  2408. "1101100111110101"
  2409. "1100101101001100"
  2410. "1010100000001111"
  2411. "1001100010010100"
  2412. "1001000000000101"
  2413. "1011110011000010"
  2414. "1110101111010101"
  2415. "1010101010001010"
  2416. "1111111111111111"
  2417. },
  2418. /* 67*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE | FAST_MODE, -1, -1, -1, -1, "[)>\\R05\\G80040614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B8", 0,
  2419. "1010101010101010"
  2420. "1111100010001111"
  2421. "1010100001100100"
  2422. "1010010001011001"
  2423. "1110000110000110"
  2424. "1001010011101111"
  2425. "1000010010001100"
  2426. "1101100111110101"
  2427. "1100101000101100"
  2428. "1010100001010011"
  2429. "1001001100111100"
  2430. "1001110010011101"
  2431. "1001011000010100"
  2432. "1100110000010101"
  2433. "1010000010101010"
  2434. "1111111111111111"
  2435. },
  2436. /* 68*/ { BARCODE_DATAMATRIX, DATA_MODE | ESCAPE_MODE, -1, -1, -1, -1, "[)>\\R05\\G80040614141MH80312\\R\\E", -1, 0, 16, 16, 1, "ANSI MH10.8.17-2017 Table B.1 B8", 0,
  2437. "1010101010101010"
  2438. "1111100010001111"
  2439. "1010100001100100"
  2440. "1010010001011001"
  2441. "1110000110000110"
  2442. "1001010011101111"
  2443. "1000010010001100"
  2444. "1101100111110101"
  2445. "1100101000101100"
  2446. "1010100001010011"
  2447. "1001001100111100"
  2448. "1001110010011101"
  2449. "1001011000010100"
  2450. "1100110000010101"
  2451. "1010000010101010"
  2452. "1111111111111111"
  2453. },
  2454. /* 69*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 3 Example 1", 0,
  2455. "1010101010101010"
  2456. "1001001011100001"
  2457. "1000111110110000"
  2458. "1100100110000001"
  2459. "1000110111101010"
  2460. "1100100110001111"
  2461. "1000010110000110"
  2462. "1000010000000001"
  2463. "1001101001111110"
  2464. "1001100011010111"
  2465. "1011100110011110"
  2466. "1000010111011101"
  2467. "1101000010001110"
  2468. "1110101001000101"
  2469. "1001011001111010"
  2470. "1111111111111111"
  2471. },
  2472. /* 70*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "price:£20.00", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 3 Example 2", 0,
  2473. "10101010101010101010101010"
  2474. "10000111010111000110110001"
  2475. "10000101101010010011011000"
  2476. "11001010011000000101110111"
  2477. "10010101000100111011110110"
  2478. "11100111000100111100000001"
  2479. "11100101111110001101011100"
  2480. "10000011101101110011110011"
  2481. "11011100101111100110010110"
  2482. "10101101100110000001001011"
  2483. "11100101010110100111011000"
  2484. "11111111111111111111111111"
  2485. },
  2486. /* 71*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 3, -1, -1, -1, "C:\\DOCS\\EXAMPLE.TXT", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 3 Example 3", 0,
  2487. "101010101010101010"
  2488. "100000001010011011"
  2489. "100010111000011100"
  2490. "110010001000010111"
  2491. "100011100110001110"
  2492. "110001010100010001"
  2493. "101000000010110100"
  2494. "111000000111100111"
  2495. "100010101110101110"
  2496. "111101011100000111"
  2497. "101101110100111010"
  2498. "110000101011100001"
  2499. "100110010100111110"
  2500. "100000000100010101"
  2501. "111011010100011000"
  2502. "101111000111101111"
  2503. "100110001010000100"
  2504. "111111111111111111"
  2505. },
  2506. /* 72*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 4, -1, -1, -1, "Študentska št. 2198390", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 4 Example 1; BWIPP same as FAST_MODE", 0,
  2507. "10101010101010101010"
  2508. "10001110100110101111"
  2509. "10001101000001010110"
  2510. "11011010011101011001"
  2511. "10111110101000101110"
  2512. "11010110111111100111"
  2513. "10011001111111100000"
  2514. "10011111111111010001"
  2515. "11000110110101100100"
  2516. "11101101010011000011"
  2517. "10111110101011001110"
  2518. "10100100100110000101"
  2519. "10111010000001010010"
  2520. "10011010111010000001"
  2521. "10100010001110111000"
  2522. "10001101001000100111"
  2523. "10110101100001100110"
  2524. "11111110001010111101"
  2525. "11010000001001011010"
  2526. "11111111111111111111"
  2527. },
  2528. /* 73*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 4, -1, 10, -1, "Szczegółowe dane kontaktowe:+48 22 694 60 00", -1, 0, 32, 32, 0, "AIM ITS/04-023:2022 ECI 4 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
  2529. "10101010101010101010101010101010"
  2530. "10010010111100111011110110001111"
  2531. "10001111110010101000001000100000"
  2532. "11011101001100111001111111000101"
  2533. "10011101100110001100001101011110"
  2534. "11101101011101011001100000100101"
  2535. "11000111000010101110001010011110"
  2536. "11010100010000011000001100101111"
  2537. "11100010001100101001011100110110"
  2538. "11101011010001011001110000000001"
  2539. "10000101111001001011000111011000"
  2540. "10000110001011111011010001001111"
  2541. "10010101010000101001101110111000"
  2542. "10011001000101011111000011101101"
  2543. "11011111100011101100010000000010"
  2544. "11111111111111111111111111111111"
  2545. "10101010101010101010101010101010"
  2546. "10011011100000011001000100011101"
  2547. "11011100111100001111011111100100"
  2548. "11011011110010011111110101100011"
  2549. "11101111000110101101001000001000"
  2550. "10110101101110011111100100010011"
  2551. "10011001101101101001001000100000"
  2552. "10101010111010111100000011000111"
  2553. "10011011001000101010001001000010"
  2554. "10011101101000111010100010100101"
  2555. "11100000000001001110111100101110"
  2556. "10011011100010111011101110011101"
  2557. "11101101111111101110111001010100"
  2558. "10001010101011111111110010011101"
  2559. "11001100101101101010010101100000"
  2560. "11111111111111111111111111111111"
  2561. },
  2562. /* 74*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 5, -1, -1, DM_SQUARE, "Liĥtenŝtejno", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 5 Example 1; BWIPP different encodation", 0,
  2563. "101010101010101010"
  2564. "100101101010111011"
  2565. "100011010100011110"
  2566. "111010101110110111"
  2567. "100001111010000110"
  2568. "111100110100011001"
  2569. "111111110000101000"
  2570. "110111110111011111"
  2571. "101101101001101110"
  2572. "101011010001100011"
  2573. "110100011000000110"
  2574. "111101010011111011"
  2575. "101010100110001100"
  2576. "100010001100010111"
  2577. "110101100101101010"
  2578. "100010011100100101"
  2579. "110001011101010110"
  2580. "111111111111111111"
  2581. },
  2582. /* 75*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 6, -1, -1, DM_SQUARE, "Lietuvą", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 6 Example 1", 0,
  2583. "1010101010101010"
  2584. "1001011011110111"
  2585. "1000010100001110"
  2586. "1111100101001101"
  2587. "1001110010001110"
  2588. "1111010011100111"
  2589. "1110100001010110"
  2590. "1100000101010001"
  2591. "1101101001001100"
  2592. "1110101111100011"
  2593. "1101111011100110"
  2594. "1011100001101101"
  2595. "1011000111011100"
  2596. "1100101001001101"
  2597. "1100100101110010"
  2598. "1111111111111111"
  2599. },
  2600. /* 76*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 7, -1, -1, DM_SQUARE, "Россия", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 7 Example 1", 0,
  2601. "1010101010101010"
  2602. "1001110110001111"
  2603. "1001101010110100"
  2604. "1000101100100101"
  2605. "1001100010101000"
  2606. "1110010011110111"
  2607. "1100000001110110"
  2608. "1111100110000001"
  2609. "1010001010001110"
  2610. "1001110101110011"
  2611. "1011111000110000"
  2612. "1011011010100111"
  2613. "1101110011100110"
  2614. "1000011010101101"
  2615. "1010110001000010"
  2616. "1111111111111111"
  2617. },
  2618. /* 77*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 7, -1, -1, DM_SQUARE, "Монголулс", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 7 Example 2", 0,
  2619. "101010101010101010"
  2620. "100111100010010101"
  2621. "100110000111111110"
  2622. "100010111010101111"
  2623. "100100001110101110"
  2624. "111000111100001001"
  2625. "110000100010111110"
  2626. "110100010111111111"
  2627. "101110001001110010"
  2628. "100011100101100111"
  2629. "110001001010011100"
  2630. "100101010001110101"
  2631. "100111110110111000"
  2632. "101001010101111001"
  2633. "110011000110000000"
  2634. "101111110101011001"
  2635. "110100011110000100"
  2636. "111111111111111111"
  2637. },
  2638. /* 78*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 8, -1, -1, DM_SQUARE, "جواز السفر", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 8 Example 1", 0,
  2639. "101010101010101010"
  2640. "100111100010000001"
  2641. "100110001111110010"
  2642. "100111111010101111"
  2643. "100100001010101110"
  2644. "111010111100010001"
  2645. "110100100010111010"
  2646. "111100100111011001"
  2647. "111011111001110010"
  2648. "101111001111111001"
  2649. "110010100101010100"
  2650. "101110100110100011"
  2651. "111100100010101110"
  2652. "110010000001110111"
  2653. "100000010011010100"
  2654. "101111111100011101"
  2655. "101100011100001010"
  2656. "111111111111111111"
  2657. },
  2658. /* 79*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 8, -1, -1, -1, "المنشأ: المملكة العربية السعودية", -1, 0, 24, 24, 1, "AIM ITS/04-023:2022 ECI 8 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
  2659. "101010101010101010101010"
  2660. "100111010010111011001011"
  2661. "100110111100000010010000"
  2662. "100111000000111111001101"
  2663. "100101110011111110100010"
  2664. "111001010001001001101111"
  2665. "111101010101110101101110"
  2666. "111100001011010001101001"
  2667. "101011110001111111000110"
  2668. "100011100010010100001011"
  2669. "101011100111000111010010"
  2670. "111101010101001011010111"
  2671. "100000001011111111110110"
  2672. "110010000011010101000101"
  2673. "101010110001010010010010"
  2674. "111011000011110111111011"
  2675. "111100001100000111000110"
  2676. "111100010101100000100011"
  2677. "101111110010011001101110"
  2678. "100001110110010001100101"
  2679. "101010101000001101111100"
  2680. "110101100100100111001101"
  2681. "100111000101101010110010"
  2682. "111111111111111111111111"
  2683. },
  2684. /* 80*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 9, -1, -1, DM_SQUARE, "Μέρος #. α123", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 9 Example 1", 0,
  2685. "101010101010101010"
  2686. "100111100100000011"
  2687. "100110001111001100"
  2688. "101011100001110111"
  2689. "100100011010100110"
  2690. "110111001000011001"
  2691. "101110100000101000"
  2692. "101110010110111101"
  2693. "101111101000101100"
  2694. "100000110010100111"
  2695. "111010011011010100"
  2696. "110101010110001101"
  2697. "111110011101000010"
  2698. "101100110111110101"
  2699. "101011110001111000"
  2700. "111110011110011011"
  2701. "111100011110101000"
  2702. "111111111111111111"
  2703. },
  2704. /* 81*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 10, -1, -1, -1, "דרכון", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 10 Example 1", 0,
  2705. "10101010101010101010101010101010"
  2706. "10011101110010011001011101110101"
  2707. "10011110001001001011101011110100"
  2708. "10110010001000011011100111101101"
  2709. "11011110000110101111101011010010"
  2710. "11111110111110011001000100101111"
  2711. "11010100010001101010000011101010"
  2712. "11111111111111111111111111111111"
  2713. },
  2714. /* 82*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 10, -1, -1, -1, "מספר חלק: A20200715001", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 10 Example 2 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
  2715. "10101010101010101010"
  2716. "10011110011111000111"
  2717. "10011101101010101110"
  2718. "10110111101100111001"
  2719. "10010101111010010100"
  2720. "11110010110001000001"
  2721. "10011011101000111110"
  2722. "10110010000111000011"
  2723. "10011111010101010000"
  2724. "10111100110011010101"
  2725. "11001000110110100100"
  2726. "10111100100000111101"
  2727. "10101001000011001110"
  2728. "11000110100101000001"
  2729. "10011110101101011000"
  2730. "10000110110111011111"
  2731. "10110001001101110100"
  2732. "11100100101110010101"
  2733. "11000111100100101010"
  2734. "11111111111111111111"
  2735. },
  2736. /* 83*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 10, -1, -1, -1, "מספר חלק: A20200715001", -1, 0, 20, 20, 1, "AIM ITS/04-023:2022 ECI 10 Example 2 **NOT SAME** different encodation", 0,
  2737. "10101010101010101010"
  2738. "10011101100001000111"
  2739. "10011111111110010110"
  2740. "10110111101101001001"
  2741. "10010101111011010100"
  2742. "11110010110100101101"
  2743. "10011011101101111010"
  2744. "10110010001101100011"
  2745. "10011110001010100010"
  2746. "10111101001110011101"
  2747. "11001000111010000100"
  2748. "10110001001011000101"
  2749. "10000101101011001010"
  2750. "11110110001101010101"
  2751. "10010111111001100100"
  2752. "10011101010100110111"
  2753. "10111011001110011010"
  2754. "11110101100100001101"
  2755. "11000111010001111010"
  2756. "11111111111111111111"
  2757. },
  2758. /* 84*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 11, -1, -1, -1, "Amerika Birleşik Devletleri", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 11 Example 1 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
  2759. "1010101010101010101010"
  2760. "1000101011001011000001"
  2761. "1001111101111001101100"
  2762. "1100101110111111111011"
  2763. "1001111000001110111000"
  2764. "1111011101001001000011"
  2765. "1110110000001101101010"
  2766. "1010011101010101100111"
  2767. "1110010001101000110110"
  2768. "1001000101111010101001"
  2769. "1110011011110111010000"
  2770. "1100110101100001100011"
  2771. "1100110000000000101010"
  2772. "1001011001011010011101"
  2773. "1101011110000110010010"
  2774. "1100111000110011110101"
  2775. "1011010110110111000010"
  2776. "1011111110101100100001"
  2777. "1110100000001110110100"
  2778. "1101100010010110011111"
  2779. "1110010000010000011110"
  2780. "1111111111111111111111"
  2781. },
  2782. /* 85*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 11, -1, -1, -1, "Amerika Birleşik Devletleri", -1, 0, 22, 22, 1, "AIM ITS/04-023:2022 ECI 11 Example 1 **NOT SAME** different encodation", 0,
  2783. "1010101010101010101010"
  2784. "1001110011001011001001"
  2785. "1001111001111001110100"
  2786. "1100000110111110100011"
  2787. "1001011000001110110000"
  2788. "1111011101001000110011"
  2789. "1110110000001101001000"
  2790. "1010011101010101110111"
  2791. "1110010001101011101110"
  2792. "1001000101111000001001"
  2793. "1110011011110011000100"
  2794. "1100110101100100101111"
  2795. "1100110000000101011010"
  2796. "1001011001100001100001"
  2797. "1101011110100001100100"
  2798. "1100111001000111011101"
  2799. "1011011100010000111010"
  2800. "1011110101000111110001"
  2801. "1110110111010111100000"
  2802. "1101110111000000010011"
  2803. "1110111101000010011110"
  2804. "1111111111111111111111"
  2805. },
  2806. /* 86*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 11, -1, -1, -1, "Biniş kartı #120921039", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 11 Example 2; BWIPP different encodation", 0,
  2807. "10101010101010101010"
  2808. "10001110101011111111"
  2809. "10010101011000110110"
  2810. "11001010110110010001"
  2811. "10011111100000111010"
  2812. "11101010111000111011"
  2813. "11010100101001000000"
  2814. "10101010001011000001"
  2815. "11110110110010001010"
  2816. "10010000100110111011"
  2817. "11001001111000001110"
  2818. "10010100000101101111"
  2819. "11101111000001110100"
  2820. "11000001110100111111"
  2821. "10101110011101100000"
  2822. "11111011111011101101"
  2823. "11010011001001110000"
  2824. "10101100011011001101"
  2825. "10000100110101011010"
  2826. "11111111111111111111"
  2827. },
  2828. /* 87*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 12, -1, -1, -1, "Kūrybiškumą", -1, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 12 Example 1 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
  2829. "10101010101010101010101010"
  2830. "10010010000111001101100011"
  2831. "10011111110110110110111000"
  2832. "11011100100001101101111111"
  2833. "10011100000110010100001110"
  2834. "11000100011101011100010001"
  2835. "10000100101011100011011010"
  2836. "10100101000001111110101001"
  2837. "11010001001001001000011100"
  2838. "10111001001111010000000101"
  2839. "10011101110100000011000100"
  2840. "11111111111111111111111111"
  2841. },
  2842. /* 88*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 12, -1, -1, -1, "Kūrybiškumą", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 12 Example 1 **NOT SAME** different encodation", 0,
  2843. "10101010101010101010101010"
  2844. "10011110000111001010011111"
  2845. "10010001010110110011110000"
  2846. "11011100100001101000000111"
  2847. "10011110000110000000100110"
  2848. "11000100011100111011101001"
  2849. "10000100101011000010101010"
  2850. "10100101000100100110000001"
  2851. "11010010001010110101011000"
  2852. "11111001101111110000010001"
  2853. "11000101010100110000011010"
  2854. "11111111111111111111111111"
  2855. },
  2856. /* 89*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 13, -1, -1, -1, "บาร๋แค่ด", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 13 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  2857. "1010101010101010"
  2858. "1001110100011001"
  2859. "1001101111101000"
  2860. "1110100100111111"
  2861. "1001110111011110"
  2862. "1101001000100111"
  2863. "1110001010011110"
  2864. "1110111010010001"
  2865. "1111111001100010"
  2866. "1001000000100101"
  2867. "1100101010000100"
  2868. "1100010011100011"
  2869. "1100000011101000"
  2870. "1000011111010101"
  2871. "1001010001001010"
  2872. "1111111111111111"
  2873. },
  2874. /* 90*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 15, -1, -1, -1, "uzņēmums", -1, 0, 16, 16, 0, "AIM ITS/04-023:2022 ECI 15 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
  2875. "1010101010101010"
  2876. "1001101111101001"
  2877. "1010110111010100"
  2878. "1000101010000001"
  2879. "1001011110010000"
  2880. "1111001100011111"
  2881. "1101110101111110"
  2882. "1010111001100001"
  2883. "1111100011000010"
  2884. "1011100000101111"
  2885. "1101000010001000"
  2886. "1110000111000111"
  2887. "1001010000011010"
  2888. "1101001001100101"
  2889. "1110011001011010"
  2890. "1111111111111111"
  2891. },
  2892. /* 91*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 16, -1, -1, -1, "ṁórṡáċ", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 16 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  2893. "10101010101010101010101010101010"
  2894. "10011101001100111111001100100101"
  2895. "10101011110110101011000000111100"
  2896. "10011001010000111001101100000001"
  2897. "11010010010000001010011001001110"
  2898. "11110110101100011111111110011101"
  2899. "11101100010001001001011110100100"
  2900. "11111111111111111111111111111111"
  2901. },
  2902. /* 92*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 17, -1, -1, -1, "Price: €13.50", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 17 Example 1", 0,
  2903. "10101010101010101010101010"
  2904. "10000111000111101110001001"
  2905. "10100101110010111101000010"
  2906. "10101011110111010110100111"
  2907. "10010101011010010000100110"
  2908. "11100000110001000100010001"
  2909. "11100100110010110111101100"
  2910. "10000001101110111010011011"
  2911. "11011100101111110001001110"
  2912. "10101101110001111000111101"
  2913. "10100111000100011110100110"
  2914. "11111111111111111111111111"
  2915. },
  2916. /* 93*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 18, -1, -1, -1, "Te słowa są głębokie", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 18 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
  2917. "1010101010101010101010"
  2918. "1001011001001010011011"
  2919. "1010001101110111011000"
  2920. "1011100010011110110111"
  2921. "1001001100010100000100"
  2922. "1111011101010000101101"
  2923. "1110010000110101100100"
  2924. "1000110111110101011111"
  2925. "1110000000001000110110"
  2926. "1111110111111001001001"
  2927. "1110010001111100101010"
  2928. "1110100011100100111111"
  2929. "1101011101010010001010"
  2930. "1011011000011101110111"
  2931. "1100001001111010101110"
  2932. "1011000111000111100101"
  2933. "1000001001000010111110"
  2934. "1010010010111111100001"
  2935. "1100110001011001111000"
  2936. "1110101010111001011011"
  2937. "1011000010010101000110"
  2938. "1111111111111111111111"
  2939. },
  2940. /* 94*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 20, -1, -1, -1, "バーコード", -1, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 20 Example 1 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
  2941. "10101010101010101010101010"
  2942. "10011110011111011010110101"
  2943. "10100100010101100010110110"
  2944. "11011010011110110101110111"
  2945. "10111111011000110101101110"
  2946. "11110110100001110010111001"
  2947. "10001000110010011001110110"
  2948. "11100110101110111000101101"
  2949. "10100100101011100010101100"
  2950. "11100010001011010011110111"
  2951. "11000110001100101101001010"
  2952. "11111111111111111111111111"
  2953. },
  2954. /* 95*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 20, -1, -1, DM_SQUARE, "東京都", -1, 0, 16, 16, 0, "AIM ITS/04-023:2022 ECI 20 Example 2 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
  2955. "1010101010101010"
  2956. "1001110111101011"
  2957. "1010011001101010"
  2958. "1101111100001101"
  2959. "1000111010111110"
  2960. "1100110011010111"
  2961. "1011000011111110"
  2962. "1000100111111001"
  2963. "1111100000001010"
  2964. "1111000101101011"
  2965. "1010110001100000"
  2966. "1110010000001001"
  2967. "1001011000001110"
  2968. "1110111011010101"
  2969. "1010010001000010"
  2970. "1111111111111111"
  2971. },
  2972. /* 96*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 21, -1, -1, -1, "Študentska št. 2198390", -1, 0, 20, 20, 0, "AIM ITS/04-023:2022 ECI 21 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
  2973. "10101010101010101010"
  2974. "10001100100001100111"
  2975. "10100101100110111110"
  2976. "11101100001010110001"
  2977. "10111011100101011110"
  2978. "11101101000100110001"
  2979. "11111011100011001110"
  2980. "11000000111110011001"
  2981. "11100111111110101000"
  2982. "11000111111000011001"
  2983. "11011011010111011110"
  2984. "11100101100111011011"
  2985. "11111011111100110010"
  2986. "11010100101010011001"
  2987. "11101100100010111110"
  2988. "11110000011100100001"
  2989. "10011011000111010100"
  2990. "11111100011000100101"
  2991. "11010010011010100010"
  2992. "11111111111111111111"
  2993. },
  2994. /* 97*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 22, -1, -1, DM_SQUARE, "Россия", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 22 Example 1", 0,
  2995. "1010101010101010"
  2996. "1001110111011111"
  2997. "1010101011100000"
  2998. "1111111101000011"
  2999. "1001100010101000"
  3000. "1111010011011111"
  3001. "1000000001100110"
  3002. "1011100100000001"
  3003. "1010101000111000"
  3004. "1001111010011001"
  3005. "1101100010010000"
  3006. "1011011010001001"
  3007. "1110100000111100"
  3008. "1001011100110101"
  3009. "1011010001101010"
  3010. "1111111111111111"
  3011. },
  3012. /* 98*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 22, -1, -1, DM_SQUARE, "Монголулс", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 22 Example 2", 0,
  3013. "101010101010101010"
  3014. "100111100100010101"
  3015. "101010000001111110"
  3016. "111111111010101111"
  3017. "100100010110101110"
  3018. "111100111100011001"
  3019. "100001000010111100"
  3020. "100110010111100101"
  3021. "101000111000100010"
  3022. "100011110100101111"
  3023. "111011111000101000"
  3024. "100111100001100101"
  3025. "100011110010101010"
  3026. "100000110010101001"
  3027. "110111010111100000"
  3028. "100110011101011001"
  3029. "101100011000000110"
  3030. "111111111111111111"
  3031. },
  3032. /* 99*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 23, -1, -1, -1, "bœuf", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 23 Example 1", 0,
  3033. "10101010101010"
  3034. "10001110110001"
  3035. "10110001110100"
  3036. "10000110111101"
  3037. "10011010110010"
  3038. "11110101110101"
  3039. "11110010010000"
  3040. "10001111000111"
  3041. "11110111110110"
  3042. "10000001100001"
  3043. "11010110100000"
  3044. "10010000100111"
  3045. "11000001001110"
  3046. "11111111111111"
  3047. },
  3048. /*100*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 24, -1, -1, DM_SQUARE, "جواز السفر", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 24 Example 1", 0,
  3049. "101010101010101010"
  3050. "100111100010000001"
  3051. "101110001110110010"
  3052. "100111111110101111"
  3053. "100100001010101110"
  3054. "111010111100011001"
  3055. "110000010010100010"
  3056. "111101110110110001"
  3057. "111011011001101010"
  3058. "101111100101000111"
  3059. "110000010001000010"
  3060. "101111110011000011"
  3061. "110001010110100110"
  3062. "110010011100010111"
  3063. "111110101000110000"
  3064. "101111100010001011"
  3065. "110100011110001010"
  3066. "111111111111111111"
  3067. },
  3068. /*101*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 24, -1, -1, -1, "المنشأ: المملكة العربية السعودية", -1, 0, 24, 24, 1, "AIM ITS/04-023:2022 ECI 24 Example 2", 0,
  3069. "101010101010101010101010"
  3070. "100111010010001001001011"
  3071. "101110111100001110010010"
  3072. "100111000000111111011011"
  3073. "100101110011101110101110"
  3074. "111001010001001001101111"
  3075. "110111010100010101101110"
  3076. "111100001001000110001001"
  3077. "111011111001111100101010"
  3078. "100011100010010101011111"
  3079. "101011100111100110010100"
  3080. "111101010101101010010011"
  3081. "100000001011110011010100"
  3082. "110010000001000011100101"
  3083. "101010110101010110001010"
  3084. "111011110111011101000001"
  3085. "100100011011100100110010"
  3086. "111100001100111100001111"
  3087. "101110101011010110101110"
  3088. "100001100100001100100001"
  3089. "101110110011010001010110"
  3090. "110001111011100111011101"
  3091. "101111000110001010111010"
  3092. "111111111111111111111111"
  3093. },
  3094. /*102*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 25, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 25 Example 1", 0,
  3095. "10101010101010"
  3096. "10000010011111"
  3097. "10110101011100"
  3098. "10101111001101"
  3099. "10000011101100"
  3100. "11000000010111"
  3101. "10010000010100"
  3102. "10000100010111"
  3103. "10101101011110"
  3104. "11001100011001"
  3105. "11111010000010"
  3106. "10011010101101"
  3107. "10011101010100"
  3108. "11111111111111"
  3109. },
  3110. /*103*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 25, -1, -1, -1, "バーコード", -1, 0, 12, 26, 1, "AIM ITS/04-023:2022 ECI 25 Example 2", 0,
  3111. "10101010101010101010101010"
  3112. "10011110010000001001101001"
  3113. "10110000101111001011001010"
  3114. "10100111011011101110100111"
  3115. "10011000011000010000110110"
  3116. "11010010110001100111100001"
  3117. "11010110110011000110001100"
  3118. "10110011101011011111000001"
  3119. "10010111101001011101001100"
  3120. "11100100000101010101100011"
  3121. "11000100100011011100111100"
  3122. "11111111111111111111111111"
  3123. },
  3124. /*104*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 25, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 25 Example 3 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3125. "10101010101010101010101010101010"
  3126. "10011101000111111101100100000101"
  3127. "10111011100010101000011111001100"
  3128. "10101011100111111110100111110101"
  3129. "11100001000110001100000000111010"
  3130. "11010111110011111111000101100111"
  3131. "11110100011001101010111111010110"
  3132. "11111111111111111111111111111111"
  3133. },
  3134. /*105*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, DM_SQUARE, "条码", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 26 Example 1", 0,
  3135. "1010101010101010"
  3136. "1001110111110101"
  3137. "1011111011000100"
  3138. "1011010100111001"
  3139. "1000010010010100"
  3140. "1101110011001111"
  3141. "1011100000010110"
  3142. "1110100111001001"
  3143. "1010111100111110"
  3144. "1110010111011111"
  3145. "1100111010000100"
  3146. "1011111101000011"
  3147. "1111111101100100"
  3148. "1000011100010101"
  3149. "1001110001111010"
  3150. "1111111111111111"
  3151. },
  3152. /*106*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, -1, "バーコード", -1, 0, 20, 20, 1, "AIM ITS/04-023:2022 ECI 26 Example 2", 0,
  3153. "10101010101010101010"
  3154. "10011110001010000111"
  3155. "10111111000100111110"
  3156. "10110011010001010001"
  3157. "10001110001111011010"
  3158. "11000011100100001011"
  3159. "10101010000101000000"
  3160. "10110001001001100101"
  3161. "10001010000000001000"
  3162. "11110010000011010101"
  3163. "10001010010001011010"
  3164. "11100001110010000001"
  3165. "10110010011000110000"
  3166. "10011010010111000111"
  3167. "11111111110100000110"
  3168. "11010100111101001001"
  3169. "11001010010001101000"
  3170. "11101000000101101101"
  3171. "11000101001001010010"
  3172. "11111111111111111111"
  3173. },
  3174. /*107*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 26 Example 3", 0,
  3175. "101010101010101010"
  3176. "100111100000010101"
  3177. "101111000110111110"
  3178. "101101010101101111"
  3179. "100011101010101110"
  3180. "111100111100001001"
  3181. "100100110010110010"
  3182. "101010010110000111"
  3183. "100101011000001010"
  3184. "100100001110010001"
  3185. "100011010111100000"
  3186. "100011100010101101"
  3187. "111111010100001010"
  3188. "110010001001001001"
  3189. "100111011011000110"
  3190. "100110110111011111"
  3191. "101100010110000100"
  3192. "111111111111111111"
  3193. },
  3194. /*108*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 27, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 27 Example 1", 0,
  3195. "1010101010101010"
  3196. "1001001011000001"
  3197. "1011111111011000"
  3198. "1100100111101001"
  3199. "1000110111011100"
  3200. "1100100110000111"
  3201. "1000010110101110"
  3202. "1000010011010001"
  3203. "1001101001110110"
  3204. "1001100011110011"
  3205. "1011000000011110"
  3206. "1000110001100001"
  3207. "1110101111011010"
  3208. "1110001011011101"
  3209. "1001011001110010"
  3210. "1111111111111111"
  3211. },
  3212. /*109*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 28, -1, -1, -1, "條碼", -1, 0, 14, 14, 0, "AIM ITS/04-023:2022 ECI 28 Example 1 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example except does not set explicit BASE256 byte count", 0,
  3213. "10101010101010"
  3214. "10011101101111"
  3215. "10111001001100"
  3216. "11010111110001"
  3217. "10011010100010"
  3218. "11111111100101"
  3219. "11010001010100"
  3220. "11000100010111"
  3221. "10110010111110"
  3222. "10011001011001"
  3223. "10000111110010"
  3224. "11110001100001"
  3225. "10101101000110"
  3226. "11111111111111"
  3227. },
  3228. /*110*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 29, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 29 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3229. "10101010101010"
  3230. "10011101000111"
  3231. "10111011101100"
  3232. "11101111110101"
  3233. "10010001000000"
  3234. "11110000101001"
  3235. "11111100101110"
  3236. "11100000001111"
  3237. "11011110100110"
  3238. "10000000101001"
  3239. "10111010101110"
  3240. "10100011110101"
  3241. "11001101000100"
  3242. "11111111111111"
  3243. },
  3244. /*111*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 29, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 29 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3245. "10101010101010"
  3246. "10011101000101"
  3247. "10111011100110"
  3248. "11100110001111"
  3249. "10001011110100"
  3250. "11110000010111"
  3251. "11011111000000"
  3252. "11000100101111"
  3253. "11001101001110"
  3254. "10100100101001"
  3255. "10000101101110"
  3256. "10011001110001"
  3257. "10101101000110"
  3258. "11111111111111"
  3259. },
  3260. /*112*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 30, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 30 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3261. "10101010101010101010101010101010"
  3262. "10011101010000111110011110001101"
  3263. "10111011100001101011001100110000"
  3264. "11111001111110111010010000010001"
  3265. "11011010110111101010001000101010"
  3266. "11011111001011111001111111100111"
  3267. "11011100010101101110100010101010"
  3268. "11111111111111111111111111111111"
  3269. },
  3270. /*113*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 30, -1, -1, -1, "서울", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 30 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3271. "10101010101010"
  3272. "10011101010111"
  3273. "10111011100110"
  3274. "11111011101101"
  3275. "10000000001100"
  3276. "11101010010111"
  3277. "11111000111000"
  3278. "11000111001111"
  3279. "11101101011110"
  3280. "11110110000001"
  3281. "10110010011110"
  3282. "11011101100001"
  3283. "11001101000110"
  3284. "11111111111111"
  3285. },
  3286. /*114*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3287. "10101010101010"
  3288. "10011101010111"
  3289. "11001011110100"
  3290. "10001111000101"
  3291. "10010001011100"
  3292. "11110011111001"
  3293. "11111010101000"
  3294. "11110100011111"
  3295. "11001001011110"
  3296. "10011000100001"
  3297. "11100001000110"
  3298. "11000111110101"
  3299. "11000111000100"
  3300. "11111111111111"
  3301. },
  3302. /*115*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3303. "10101010101010"
  3304. "10011101010101"
  3305. "11001011111110"
  3306. "10000110111111"
  3307. "10001011101000"
  3308. "11110011000111"
  3309. "11011001000110"
  3310. "11010000111111"
  3311. "11011010110110"
  3312. "10111100100001"
  3313. "11011110000110"
  3314. "11111101110001"
  3315. "10100111000110"
  3316. "11111111111111"
  3317. },
  3318. /*116*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 31, -1, -1, -1, "條碼", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 31 Example 3 **NOT SAME** different encodation (example uses binary)", 0,
  3319. "10101010101010"
  3320. "10001101110001"
  3321. "11000100010000"
  3322. "10001011110011"
  3323. "10111011000000"
  3324. "11101111000101"
  3325. "10011100000110"
  3326. "11010101100111"
  3327. "10101011010110"
  3328. "10000111111001"
  3329. "11000110110000"
  3330. "11001111101011"
  3331. "10110111010010"
  3332. "11111111111111"
  3333. },
  3334. /*117*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 1 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3335. "10101010101010"
  3336. "10011101011111"
  3337. "11001011111000"
  3338. "10011110010101"
  3339. "10010000011000"
  3340. "11110011000001"
  3341. "11111001000010"
  3342. "11100101010111"
  3343. "11011110110110"
  3344. "10010011011001"
  3345. "10001110010010"
  3346. "10110101101101"
  3347. "11000001000100"
  3348. "11111111111111"
  3349. },
  3350. /*118*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "北京", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 2 **NOT SAME** example sets explicit BASE256 byte count", 0,
  3351. "10101010101010"
  3352. "10011101011101"
  3353. "11001011110010"
  3354. "10010111101111"
  3355. "10001010101100"
  3356. "11110011111111"
  3357. "11011010101100"
  3358. "11000001110111"
  3359. "11001101011110"
  3360. "10110111011001"
  3361. "10110001010010"
  3362. "10001111101001"
  3363. "10100001000110"
  3364. "11111111111111"
  3365. },
  3366. /*119*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, -1, "條碼", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 32 Example 3 **NOT SAME** different encodation (example uses binary)", 0,
  3367. "10101010101010"
  3368. "10001101111001"
  3369. "11000100011100"
  3370. "10011010100011"
  3371. "10111010000100"
  3372. "11101111111101"
  3373. "10011111101100"
  3374. "11000100101111"
  3375. "10111100111110"
  3376. "10001100000001"
  3377. "10101001100100"
  3378. "10111101110011"
  3379. "10110001010010"
  3380. "11111111111111"
  3381. },
  3382. /*120*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "པེ་ཅིང།", -1, 0, 24, 24, 0, "AIM ITS/04-023:2022 ECI 32 Example 4 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
  3383. "101010101010101010101010"
  3384. "100111110000011010000101"
  3385. "110001010011101011111000"
  3386. "100110100010001000000001"
  3387. "101010111101111000100010"
  3388. "111100101011010111001111"
  3389. "101001001000011100000110"
  3390. "101000101100101001110001"
  3391. "100001001111101011100100"
  3392. "111010001100111101101101"
  3393. "100011010001011011110000"
  3394. "110010010111110001101011"
  3395. "101101111000101100010010"
  3396. "110000111010011001110111"
  3397. "101111000010001111001100"
  3398. "101001000110000010101101"
  3399. "101011101110010001100100"
  3400. "100101000100111011001101"
  3401. "111101101010011000011010"
  3402. "111110011100101001001111"
  3403. "100010111101101000111100"
  3404. "111001111000001100100101"
  3405. "110001000101110010010010"
  3406. "111111111111111111111111"
  3407. },
  3408. /*121*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "バーコード", -1, 0, 18, 18, 1, "AIM ITS/04-023:2022 ECI 32 Example 5", 0,
  3409. "101010101010101010"
  3410. "100111100000000001"
  3411. "110010001111110010"
  3412. "100101001110101111"
  3413. "100100110010101110"
  3414. "110100010000010001"
  3415. "110100100010100110"
  3416. "100101110111001001"
  3417. "101001001001110100"
  3418. "111011101000110011"
  3419. "110101001000010110"
  3420. "100010101000110001"
  3421. "110111110111101000"
  3422. "111011011001100101"
  3423. "101001011011110000"
  3424. "101111010001101001"
  3425. "101100011101111000"
  3426. "111111111111111111"
  3427. },
  3428. /*122*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 32, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 32 Example 6 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
  3429. "101010101010101010"
  3430. "100111100000001111"
  3431. "110001010011000100"
  3432. "100110100011110111"
  3433. "101011111110100110"
  3434. "111100110100011001"
  3435. "100100100000100000"
  3436. "101000110111110001"
  3437. "101001001000001000"
  3438. "111100011010000111"
  3439. "100001001010100000"
  3440. "111011011010000111"
  3441. "111010101010001010"
  3442. "101001100101100111"
  3443. "101101011010111010"
  3444. "110111110000100111"
  3445. "101100010101010110"
  3446. "111111111111111111"
  3447. },
  3448. /*123*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, -1, "条码", -1, 0, 14, 14, 1, "AIM ITS/04-023:2022 ECI 33 Example 1", 0,
  3449. "10101010101010"
  3450. "10001010110111"
  3451. "11000000010100"
  3452. "10100000001001"
  3453. "10010101100000"
  3454. "11111000100001"
  3455. "10001100000010"
  3456. "10011110011111"
  3457. "10101010010110"
  3458. "10101011001001"
  3459. "10110010011110"
  3460. "11110100111101"
  3461. "10010001000100"
  3462. "11111111111111"
  3463. },
  3464. /*124*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, DM_SQUARE, "バーコード", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 33 Example 2 **NOT SAME** Zint switches to ASCII 1 char before end; BWIPP same as example", 0,
  3465. "101010101010101010"
  3466. "100111100010010001"
  3467. "110010000100110010"
  3468. "101011100010101111"
  3469. "101010011010101110"
  3470. "111100110000011001"
  3471. "100101010010100100"
  3472. "110000100110100001"
  3473. "100001011001010010"
  3474. "111000011111011101"
  3475. "111001011000110110"
  3476. "111001011110000111"
  3477. "111110001110011010"
  3478. "111101110110011101"
  3479. "110111001100001000"
  3480. "110111010110011001"
  3481. "111100010111101010"
  3482. "111111111111111111"
  3483. },
  3484. /*125*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 33, -1, -1, -1, "바코드", -1, 0, 8, 32, 0, "AIM ITS/04-023:2022 ECI 33 Example 3 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
  3485. "10101010101010101010101010101010"
  3486. "10010110001111011011011000110101"
  3487. "11001111111100101000100000101000"
  3488. "10101010110011011010101011101001"
  3489. "11001001010111101111001001100010"
  3490. "11111001001000011000100000000011"
  3491. "11110010110110101110001111110110"
  3492. "11111111111111111111111111111111"
  3493. },
  3494. /*126*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 33, -1, -1, -1, "바코드", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 33 Example 3 **NOT SAME** different encodation", 0,
  3495. "10101010101010101010101010101010"
  3496. "10011101001111011010111110010101"
  3497. "11000011111111101000110111000100"
  3498. "10100000110010111111011010110001"
  3499. "11000001010111001000101111100010"
  3500. "11111111000000011001110101101111"
  3501. "11110100011100101110011010101000"
  3502. "11111111111111111111111111111111"
  3503. },
  3504. /*127*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, -1, "条码", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 34 Example 1", 0,
  3505. "10101010101010101010101010101010"
  3506. "10000100000001011001100100101101"
  3507. "11000100100001001101100101100100"
  3508. "10111010000110111100110000101101"
  3509. "11010000001011001000011010110010"
  3510. "11100000010100111100110101101011"
  3511. "11010000001111101100000001100110"
  3512. "11111111111111111111111111111111"
  3513. },
  3514. /*128*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, -1, "バーコード", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 34 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
  3515. "1010101010101010101010"
  3516. "1000010001011111000001"
  3517. "1100000010110010010000"
  3518. "1011110000010011001001"
  3519. "1011001000111010010010"
  3520. "1110010000101001001011"
  3521. "1011101110111101010000"
  3522. "1011111000010101100111"
  3523. "1010110110101000110110"
  3524. "1010000011111001101001"
  3525. "1000100111111111110100"
  3526. "1011101011101111100011"
  3527. "1101100101100000011000"
  3528. "1100011000010100101011"
  3529. "1111001010000011111100"
  3530. "1111000101010110000011"
  3531. "1110001011000011100110"
  3532. "1110010101000001110101"
  3533. "1010101000111011110110"
  3534. "1000001001000110011101"
  3535. "1101110000000101011100"
  3536. "1111111111111111111111"
  3537. },
  3538. /*129*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 34, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 34 Example 3 **NOT SAME** different encodation; BWIPP same as FAST_MODE", 0,
  3539. "101010101010101010"
  3540. "100001000101111111"
  3541. "110011001011000000"
  3542. "101110001001110111"
  3543. "101011101110110110"
  3544. "110010000000010001"
  3545. "111001110000111010"
  3546. "110111010111011001"
  3547. "100011011001110010"
  3548. "101000000111010001"
  3549. "100000101011011110"
  3550. "101100011100110111"
  3551. "101100010100110000"
  3552. "111111100111000001"
  3553. "100001000011011000"
  3554. "100000101110010011"
  3555. "101000000011010110"
  3556. "111111111111111111"
  3557. },
  3558. /*130*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 34, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 34 Example 3 **NOT SAME** different encodation", 0,
  3559. "101010101010101010"
  3560. "100111100101111111"
  3561. "110011011011000000"
  3562. "101110101001110111"
  3563. "101010001110110110"
  3564. "110000000000011001"
  3565. "110101110000111010"
  3566. "110111010110100001"
  3567. "100011011000011110"
  3568. "101000011000101111"
  3569. "100011011111111000"
  3570. "101110111100011111"
  3571. "101101011010001000"
  3572. "110111011110011001"
  3573. "111000001110001000"
  3574. "100111100000010111"
  3575. "101100011111010100"
  3576. "111111111111111111"
  3577. },
  3578. /*131*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, -1, "条码", -1, 0, 8, 32, 1, "AIM ITS/04-023:2022 ECI 35 Example 1", 0,
  3579. "10101010101010101010101010101010"
  3580. "10001010101001011001011111111101"
  3581. "11000000011111001011101110100000"
  3582. "11000000000110111000110111011101"
  3583. "11000010001110001111001100111110"
  3584. "11000010101100011100010000001011"
  3585. "11001100011110001000101111100010"
  3586. "11111111111111111111111111111111"
  3587. },
  3588. /*132*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, -1, "バーコード", -1, 0, 22, 22, 0, "AIM ITS/04-023:2022 ECI 35 Example 2 **NOT SAME** different encodation; BWIPP different encodation", 0,
  3589. "1010101010101010101010"
  3590. "1001111010111100010001"
  3591. "1100100000010110000000"
  3592. "1100111001000110010101"
  3593. "1010100000110100011010"
  3594. "1111001100101000111011"
  3595. "1001010110011101101100"
  3596. "1110011011010101011111"
  3597. "1000010010101011011110"
  3598. "1000000111111000011001"
  3599. "1111100111110011001000"
  3600. "1111110011101010000001"
  3601. "1100000101000111111000"
  3602. "1100111000001001100101"
  3603. "1011101010011011100000"
  3604. "1101000100111000010101"
  3605. "1010000001011110010100"
  3606. "1000010110001001000101"
  3607. "1000011101101100111000"
  3608. "1001011111010100100111"
  3609. "1000011100010000111100"
  3610. "1111111111111111111111"
  3611. },
  3612. /*133*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 35, -1, -1, DM_SQUARE, "바코드", -1, 0, 18, 18, 0, "AIM ITS/04-023:2022 ECI 35 Example 3 **NOT SAME** different encodation; BWIPP different encodation", 0,
  3613. "101010101010101010"
  3614. "100101100010110001"
  3615. "110011111110000010"
  3616. "110011000101000111"
  3617. "100010100010001110"
  3618. "111110110000011001"
  3619. "101101010000110000"
  3620. "111101100111001101"
  3621. "100100011001111100"
  3622. "110111100000101011"
  3623. "101001011010101000"
  3624. "111111001010001101"
  3625. "110001011011010100"
  3626. "111100111001011101"
  3627. "111011010101100100"
  3628. "110000000111111111"
  3629. "110010110111000000"
  3630. "111111111111111111"
  3631. },
  3632. /*134*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 170, -1, -1, -1, "sn:7QPB4MN", -1, 0, 16, 16, 1, "AIM ITS/04-023:2022 ECI 170 Example 1", 0,
  3633. "1010101010101010"
  3634. "1101001101000101"
  3635. "1000011000100000"
  3636. "1000101000101001"
  3637. "1011111101000010"
  3638. "1110000100111111"
  3639. "1011011000011110"
  3640. "1010011011010001"
  3641. "1000111011000100"
  3642. "1110001110110001"
  3643. "1000111001111000"
  3644. "1000100110001001"
  3645. "1101001101010000"
  3646. "1010000010100101"
  3647. "1101110101101010"
  3648. "1111111111111111"
  3649. },
  3650. /*135*/ { BARCODE_DATAMATRIX, DATA_MODE, 899, -1, -1, -1, "\000\001\002\133\134\135\375\376\377", 9, 0, 12, 26, 0, "AIM ITS/04-023:2022 ECI 899 Example 1 **NOT SAME** different encodation; BWIPP different encodation", 0,
  3651. "10101010101010101010101010"
  3652. "11001100001001010101010111"
  3653. "10000000111000111010100110"
  3654. "10110001100110100000111111"
  3655. "10000101001011001101100110"
  3656. "11000011110001000000110001"
  3657. "11011011110011111011110000"
  3658. "11101110101110100010110101"
  3659. "10001101101001001110101110"
  3660. "10010110100111110011110111"
  3661. "10010010000010011010010100"
  3662. "11111111111111111111111111"
  3663. },
  3664. /*136*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, 3, -1, -1, -1, "\101\300", -1, 0, 12, 12, 1, "AÀ", 0,
  3665. "101010101010"
  3666. "100010101111"
  3667. "100001011110"
  3668. "110000010001"
  3669. "101100110000"
  3670. "110010100111"
  3671. "101011011100"
  3672. "110100111101"
  3673. "101100110100"
  3674. "101011100101"
  3675. "100011011010"
  3676. "111111111111"
  3677. },
  3678. /*137*/ { BARCODE_DATAMATRIX, DATA_MODE, 3, -1, -1, -1, "\101\300", -1, 0, 12, 12, 1, "AÀ", 0,
  3679. "101010101010"
  3680. "100010101111"
  3681. "100001011110"
  3682. "110000010001"
  3683. "101100110000"
  3684. "110010100111"
  3685. "101011011100"
  3686. "110100111101"
  3687. "101100110100"
  3688. "101011100101"
  3689. "100011011010"
  3690. "111111111111"
  3691. },
  3692. /*138*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, 26, -1, -1, -1, "AÀ", -1, 0, 14, 14, 1, "AÀ", 0,
  3693. "10101010101010"
  3694. "10001010100001"
  3695. "10110101100100"
  3696. "10110001000101"
  3697. "10111000100010"
  3698. "11101011110011"
  3699. "10011100001100"
  3700. "10001100101111"
  3701. "10110110111110"
  3702. "10000111010001"
  3703. "10000001111000"
  3704. "11110100110001"
  3705. "11000110001100"
  3706. "11111111111111"
  3707. },
  3708. /*139*/ { BARCODE_DATAMATRIX, UNICODE_MODE, 26, -1, -1, -1, "AÀ", -1, 0, 14, 14, 1, "AÀ", 0,
  3709. "10101010101010"
  3710. "10001010100001"
  3711. "10110101100100"
  3712. "10110001000101"
  3713. "10111000100010"
  3714. "11101011110011"
  3715. "10011100001100"
  3716. "10001100101111"
  3717. "10110110111110"
  3718. "10000111010001"
  3719. "10000001111000"
  3720. "11110100110001"
  3721. "11000110001100"
  3722. "11111111111111"
  3723. },
  3724. /*140*/ { BARCODE_DATAMATRIX, UNICODE_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "abcdefgh+", -1, 0, 16, 16, 1, "TEX last_shift 2, symbols_left 1, process_p 1", 0,
  3725. "1010101010101010"
  3726. "1010011011101001"
  3727. "1011001010010010"
  3728. "1001100100110011"
  3729. "1111100010101100"
  3730. "1111111011110111"
  3731. "1111011111111100"
  3732. "1011001100001111"
  3733. "1000000101011000"
  3734. "1000011011000111"
  3735. "1101011100110100"
  3736. "1100100100110101"
  3737. "1000000111001000"
  3738. "1111111010001101"
  3739. "1101110101001010"
  3740. "1111111111111111"
  3741. },
  3742. /*141*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, DM_SQUARE, "abcdefgh+", -1, 0, 14, 14, 0, "ATTTTTTTT; BWIPP same as FAST_MODE", 1,
  3743. "10101010101010"
  3744. "11100001010101"
  3745. "11010101001000"
  3746. "11111100011011"
  3747. "10100110000010"
  3748. "10001000100111"
  3749. "10101100101000"
  3750. "10001000110011"
  3751. "11101101100100"
  3752. "10101101000011"
  3753. "10110100100010"
  3754. "11101010101001"
  3755. "10111011000100"
  3756. "11111111111111"
  3757. },
  3758. /*142*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "7 BASE256s, 1 pad", 0,
  3759. "10101010101010101010101010101010"
  3760. "10000101000011011000110100100001"
  3761. "11100111110101001011101110100010"
  3762. "10111011010100111110010110001011"
  3763. "11001000110001101000001111000010"
  3764. "11000010000001111000100101001011"
  3765. "11010000111100001010011101100100"
  3766. "11111111111111111111111111111111"
  3767. },
  3768. /*143*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "7 BASE256s, 1 pad", 0,
  3769. "10101010101010101010101010101010"
  3770. "10000101000011011000110100100001"
  3771. "11100111110101001011101110100010"
  3772. "10111011010100111110010110001011"
  3773. "11001000110001101000001111000010"
  3774. "11000010000001111000100101001011"
  3775. "11010000111100001010011101100100"
  3776. "11111111111111111111111111111111"
  3777. },
  3778. /*144*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "8 BASE256s, no padding", 0,
  3779. "10101010101010101010101010101010"
  3780. "10000101000011011111001101000001"
  3781. "11010111110101001001011001100010"
  3782. "11001011010111111010001100100011"
  3783. "11001000110000101011101100011010"
  3784. "11000010000001111000010010110011"
  3785. "11010000110010001001010001111000"
  3786. "11111111111111111111111111111111"
  3787. },
  3788. /*145*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200", -1, 0, 8, 32, 1, "8 BASE256s, no padding", 0,
  3789. "10101010101010101010101010101010"
  3790. "10000101000011011111001101000001"
  3791. "11010111110101001001011001100010"
  3792. "11001011010111111010001100100011"
  3793. "11001000110000101011101100011010"
  3794. "11000010000001111000010010110011"
  3795. "11010000110010001001010001111000"
  3796. "11111111111111111111111111111111"
  3797. },
  3798. /*146*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, DM_SQUARE, "\200\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "8 BASE256s, square, no padding", 0,
  3799. "1010101010101010"
  3800. "1000010100001101"
  3801. "1101011111101110"
  3802. "1100101101000101"
  3803. "1000100000110000"
  3804. "1100011100010111"
  3805. "1001010100101100"
  3806. "1110111010010111"
  3807. "1000111000010110"
  3808. "1110001101001001"
  3809. "1000110011010000"
  3810. "1011110101001101"
  3811. "1000000010101100"
  3812. "1001001000100101"
  3813. "1111000011111010"
  3814. "1111111111111111"
  3815. },
  3816. /*147*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, DM_SQUARE, "\200\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "8 BASE256s, square, no padding", 0,
  3817. "1010101010101010"
  3818. "1000010100001101"
  3819. "1101011111101110"
  3820. "1100101101000101"
  3821. "1000100000110000"
  3822. "1100011100010111"
  3823. "1001010100101100"
  3824. "1110111010010111"
  3825. "1000111000010110"
  3826. "1110001101001001"
  3827. "1000110011010000"
  3828. "1011110101001101"
  3829. "1000000010101100"
  3830. "1001001000100101"
  3831. "1111000011111010"
  3832. "1111111111111111"
  3833. },
  3834. /*148*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "9 BASE256s, 1 pad", 0,
  3835. "1010101010101010"
  3836. "1000010101001101"
  3837. "1110011111000010"
  3838. "1101101101010101"
  3839. "1000100000001010"
  3840. "1100011001101111"
  3841. "1001010111100100"
  3842. "1110111001100111"
  3843. "1000111101000010"
  3844. "1110001101001101"
  3845. "1000011111001000"
  3846. "1011001101010111"
  3847. "1010101000000000"
  3848. "1011001001011101"
  3849. "1100000011011010"
  3850. "1111111111111111"
  3851. },
  3852. /*149*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200", -1, 0, 16, 16, 1, "9 BASE256s, 1 pad", 0,
  3853. "1010101010101010"
  3854. "1000010101001101"
  3855. "1110011111000010"
  3856. "1101101101010101"
  3857. "1000100000001010"
  3858. "1100011001101111"
  3859. "1001010111100100"
  3860. "1110111001100111"
  3861. "1000111101000010"
  3862. "1110001101001101"
  3863. "1000011111001000"
  3864. "1011001101010111"
  3865. "1010101000000000"
  3866. "1011001001011101"
  3867. "1100000011011010"
  3868. "1111111111111111"
  3869. },
  3870. /*150*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 22, 22, 1, "22 BASE256s, 6 pads", 0,
  3871. "1010101010101010101010"
  3872. "1010010100011100010101"
  3873. "1000011110111110001100"
  3874. "1010101100010111000101"
  3875. "1000100000010100110110"
  3876. "1100011100101000100101"
  3877. "1001010100111101110100"
  3878. "1110111000010101110111"
  3879. "1000111010101000101100"
  3880. "1110000111111001100111"
  3881. "1000000111110100001010"
  3882. "1011110011101111101001"
  3883. "1111000101101110010000"
  3884. "1100011000111101111001"
  3885. "1111001010100110101110"
  3886. "1111000100111010000001"
  3887. "1110000100011110101100"
  3888. "1100010001111011110101"
  3889. "1000101001101111011100"
  3890. "1111110010000111001001"
  3891. "1111101000110111010100"
  3892. "1111111111111111111111"
  3893. },
  3894. /*151*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 22, 22, 1, "22 BASE256s, 6 pads", 0,
  3895. "1010101010101010101010"
  3896. "1010010100011100010101"
  3897. "1000011110111110001100"
  3898. "1010101100010111000101"
  3899. "1000100000010100110110"
  3900. "1100011100101000100101"
  3901. "1001010100111101110100"
  3902. "1110111000010101110111"
  3903. "1000111010101000101100"
  3904. "1110000111111001100111"
  3905. "1000000111110100001010"
  3906. "1011110011101111101001"
  3907. "1111000101101110010000"
  3908. "1100011000111101111001"
  3909. "1111001010100110101110"
  3910. "1111000100111010000001"
  3911. "1110000100011110101100"
  3912. "1100010001111011110101"
  3913. "1000101001101111011100"
  3914. "1111110010000111001001"
  3915. "1111101000110111010100"
  3916. "1111111111111111111111"
  3917. },
  3918. /*152*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, DM_DMRE, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 8, 64, 1, "22 BASE256s, no padding", 0,
  3919. "1010101010101010101010101010101010101010101010101010101010101010"
  3920. "1000010101100011101010101011101111110100100110011100010011010111"
  3921. "1101011110001010110000001110001010001011010111001010101101100000"
  3922. "1100101000110001110100000001100110010100111101111110000010011111"
  3923. "1000100101001000110110101110011011110110111010101110010111001100"
  3924. "1100001101011011111101111000110110110101110110111111011010011111"
  3925. "1101000011001010111101101101110010111100111101001010010011001000"
  3926. "1111111111111111111111111111111111111111111111111111111111111111"
  3927. },
  3928. /*153*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, DM_DMRE, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 8, 64, 1, "22 BASE256s, no padding", 0,
  3929. "1010101010101010101010101010101010101010101010101010101010101010"
  3930. "1000010101100011101010101011101111110100100110011100010011010111"
  3931. "1101011110001010110000001110001010001011010111001010101101100000"
  3932. "1100101000110001110100000001100110010100111101111110000010011111"
  3933. "1000100101001000110110101110011011110110111010101110010111001100"
  3934. "1100001101011011111101111000110110110101110110111111011010011111"
  3935. "1101000011001010111101101101110010111100111101001010010011001000"
  3936. "1111111111111111111111111111111111111111111111111111111111111111"
  3937. },
  3938. /*154*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "249 BASE256s + 6 ASCII (3 double-digits)", 0,
  3939. "1010101010101010101010101010101010101010101010101010101010101010"
  3940. "1000010100011101100000010111100110100010110111011011111010000001"
  3941. "1100011110111110100110111101111010101101000010001101001011001100"
  3942. "1101101100010111110011110010101111111101101111111000111010011111"
  3943. "1000100000010100101110100100010011101111110111101111000010011100"
  3944. "1100011100101001111000111100010110100000001000111000010111011111"
  3945. "1001010100111000110001000111000010000110010001101001010100110110"
  3946. "1110111000001001100110011110010110100111101011111101110000100001"
  3947. "1000111010111010101111110111010011110010010000101011111100100100"
  3948. "1110000111101011110100011110010111101001010010011010011100101111"
  3949. "1000000110110110101100000110101010111110101110001001100111001010"
  3950. "1011110011010011100100010101110110010111100011011011000101010001"
  3951. "1111000000110100100110001000001010110000101101001000110010011100"
  3952. "1100010111100011111010011010011110001011111110011001011110110101"
  3953. "1111011001000110110011110110010010011101001110101110100000100000"
  3954. "1111111111111111111111111111111111111111111111111111111111111111"
  3955. "1010101010101010101010101010101010101010101010101010101010101010"
  3956. "1110001011011001101110110011001111000100100101111110101111000101"
  3957. "1110110010110010111000100100011010010000000010101111111101011000"
  3958. "1101000010101101110111100001111110100100111100111100010010010011"
  3959. "1000100110010100110000111011001011101101110101001001100110110100"
  3960. "1111100101011001100001011010011111100110001111111010101010010111"
  3961. "1000001111111110110101011001100011101101000010101100111010001110"
  3962. "1111000000111101101111010011010111000001100001111110000100000001"
  3963. "1111010010101010100000011000001010001110111110101110000001111010"
  3964. "1011001001000111100000011010011110111101001101011110111011000001"
  3965. "1000010001100010101101001011010011100111000010101001111100101110"
  3966. "1111011010100001111100001110110111001001101010111111110010101101"
  3967. "1110100001010010100001011000100010001010100100001101110101001100"
  3968. "1111111110101101111011010111110111101000001011011110100000000011"
  3969. "1001110010110010111011001000101011011110110101101001001010101100"
  3970. "1111111111111111111111111111111111111111111111111111111111111111"
  3971. "1010101010101010101010101010101010101010101010101010101010101010"
  3972. "1101000101000011110110000010110111101010011000011011010101000001"
  3973. "1101111101111010110111110101100011001010001010101100011011100010"
  3974. "1011011101111111111111010000101111011110000101011000011000100011"
  3975. "1011011110000100101000101100100011100101110101001110000101001100"
  3976. "1000101100001001110001110111011111000100111010111111011110001001"
  3977. "1010100101101000110000011111110011001100101111101000111000101100"
  3978. "1100001101001011101001110000100110000100011001011100010001000011"
  3979. "1100000011000000110100100100111011000111110110001101011110011110"
  3980. "1001100111111111101100110100011110111000010011111000001000111111"
  3981. "1010100111101010101001000101100011100100011101001000011100011010"
  3982. "1100100101001111101001111111011111100110000101111001111100010011"
  3983. "1111100101100000100001110001101011001111010110101000001110010100"
  3984. "1110111011000011110010010010111111001001010110011011010111010011"
  3985. "1011110001011110101100100110011010111110100001001010011101010110"
  3986. "1111111111111111111111111111111111111111111111111111111111111111"
  3987. "1010101010101010101010101010101010101010101010101010101010101010"
  3988. "1110111000110011111011100100010111000011100101011011101100010011"
  3989. "1110110010010110100100001110111010010110110001101111010100110000"
  3990. "1001001101100001111011100010000110011101011001111010001001111001"
  3991. "1010011111000110111100001110010010011010011010101000100111101000"
  3992. "1011111111010001100011010010011111110100000001111000101111110011"
  3993. "1011011011010000111100000011000010100000011010001100111100001100"
  3994. "1010100010001111100111010000110110101100110010011011101100010101"
  3995. "1010001000011110101101010000111011011001111110001100011011110010"
  3996. "1100100011011111101101110100101111011111010101011000011100100101"
  3997. "1110001110100110101011000111000011111100100000001001111000001110"
  3998. "1111011111010111111111110100001110110110001101011111010010010111"
  3999. "1111110000011000100110001110001010111110000000001010111101111100"
  4000. "1010101010110001100001110010110111111100001000011001001011101101"
  4001. "1000001101010100110010010110101010000000001010101100100011101010"
  4002. "1111111111111111111111111111111111111111111111111111111111111111"
  4003. },
  4004. /*155*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "249 BASE256s + 6 ASCII (3 double-digits)", 0,
  4005. "1010101010101010101010101010101010101010101010101010101010101010"
  4006. "1000010100011101100000010111100110100010110111011011111010000001"
  4007. "1100011110111110100110111101111010101101000010001101001011001100"
  4008. "1101101100010111110011110010101111111101101111111000111010011111"
  4009. "1000100000010100101110100100010011101111110111101111000010011100"
  4010. "1100011100101001111000111100010110100000001000111000010111011111"
  4011. "1001010100111000110001000111000010000110010001101001010100110110"
  4012. "1110111000001001100110011110010110100111101011111101110000100001"
  4013. "1000111010111010101111110111010011110010010000101011111100100100"
  4014. "1110000111101011110100011110010111101001010010011010011100101111"
  4015. "1000000110110110101100000110101010111110101110001001100111001010"
  4016. "1011110011010011100100010101110110010111100011011011000101010001"
  4017. "1111000000110100100110001000001010110000101101001000110010011100"
  4018. "1100010111100011111010011010011110001011111110011001011110110101"
  4019. "1111011001000110110011110110010010011101001110101110100000100000"
  4020. "1111111111111111111111111111111111111111111111111111111111111111"
  4021. "1010101010101010101010101010101010101010101010101010101010101010"
  4022. "1110001011011001101110110011001111000100100101111110101111000101"
  4023. "1110110010110010111000100100011010010000000010101111111101011000"
  4024. "1101000010101101110111100001111110100100111100111100010010010011"
  4025. "1000100110010100110000111011001011101101110101001001100110110100"
  4026. "1111100101011001100001011010011111100110001111111010101010010111"
  4027. "1000001111111110110101011001100011101101000010101100111010001110"
  4028. "1111000000111101101111010011010111000001100001111110000100000001"
  4029. "1111010010101010100000011000001010001110111110101110000001111010"
  4030. "1011001001000111100000011010011110111101001101011110111011000001"
  4031. "1000010001100010101101001011010011100111000010101001111100101110"
  4032. "1111011010100001111100001110110111001001101010111111110010101101"
  4033. "1110100001010010100001011000100010001010100100001101110101001100"
  4034. "1111111110101101111011010111110111101000001011011110100000000011"
  4035. "1001110010110010111011001000101011011110110101101001001010101100"
  4036. "1111111111111111111111111111111111111111111111111111111111111111"
  4037. "1010101010101010101010101010101010101010101010101010101010101010"
  4038. "1101000101000011110110000010110111101010011000011011010101000001"
  4039. "1101111101111010110111110101100011001010001010101100011011100010"
  4040. "1011011101111111111111010000101111011110000101011000011000100011"
  4041. "1011011110000100101000101100100011100101110101001110000101001100"
  4042. "1000101100001001110001110111011111000100111010111111011110001001"
  4043. "1010100101101000110000011111110011001100101111101000111000101100"
  4044. "1100001101001011101001110000100110000100011001011100010001000011"
  4045. "1100000011000000110100100100111011000111110110001101011110011110"
  4046. "1001100111111111101100110100011110111000010011111000001000111111"
  4047. "1010100111101010101001000101100011100100011101001000011100011010"
  4048. "1100100101001111101001111111011111100110000101111001111100010011"
  4049. "1111100101100000100001110001101011001111010110101000001110010100"
  4050. "1110111011000011110010010010111111001001010110011011010111010011"
  4051. "1011110001011110101100100110011010111110100001001010011101010110"
  4052. "1111111111111111111111111111111111111111111111111111111111111111"
  4053. "1010101010101010101010101010101010101010101010101010101010101010"
  4054. "1110111000110011111011100100010111000011100101011011101100010011"
  4055. "1110110010010110100100001110111010010110110001101111010100110000"
  4056. "1001001101100001111011100010000110011101011001111010001001111001"
  4057. "1010011111000110111100001110010010011010011010101000100111101000"
  4058. "1011111111010001100011010010011111110100000001111000101111110011"
  4059. "1011011011010000111100000011000010100000011010001100111100001100"
  4060. "1010100010001111100111010000110110101100110010011011101100010101"
  4061. "1010001000011110101101010000111011011001111110001100011011110010"
  4062. "1100100011011111101101110100101111011111010101011000011100100101"
  4063. "1110001110100110101011000111000011111100100000001001111000001110"
  4064. "1111011111010111111111110100001110110110001101011111010010010111"
  4065. "1111110000011000100110001110001010111110000000001010111101111100"
  4066. "1010101010110001100001110010110111111100001000011001001011101101"
  4067. "1000001101010100110010010110101010000000001010101100100011101010"
  4068. "1111111111111111111111111111111111111111111111111111111111111111"
  4069. },
  4070. /*156*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "249 BASE256s + 8 ASCII (Sh A80 + 3 double-digits); BWIPP uses 2nd B256 length byte instead of ASCII shift (same no. of codewords)", 0,
  4071. "1010101010101010101010101010101010101010101010101010101010101010"
  4072. "1000010100011101100000010111100110100010110111011011111010000001"
  4073. "1100011110111110100110111101111010101101000010001101001011001100"
  4074. "1101101100010111110011110010101111111101101111111000111010011111"
  4075. "1000100000010100101110100100010011101111110111101111000010011100"
  4076. "1100011100101001111000111100010110100000001000111000010111011111"
  4077. "1001010100111000110001000111000010000110010001101001010100110110"
  4078. "1110111000001001100110011110010110100111101011111101110000100001"
  4079. "1000111010111010101111110111010011110010010000101011111100100100"
  4080. "1110000111101011110100011110010111101001010010011010011100101111"
  4081. "1000000110110110101100000110101010111110101110001001100111001010"
  4082. "1011110011010011100100010101110110010111100011011011000101010001"
  4083. "1111000000110100100110001000001010110000101101001000110010011100"
  4084. "1100010111100011111010011010011110001011111110011001011110100101"
  4085. "1111011001000110110011110110010010011101001110101110100000111100"
  4086. "1111111111111111111111111111111111111111111111111111111111111111"
  4087. "1010101010101010101010101010101010101010101010101010101010101010"
  4088. "1110001011011001101110110011001111000100100101111110101110001101"
  4089. "1110110010110010111000100100011010010000000010101111111100110100"
  4090. "1101000010101101110111100001111110100100111100111100010000000001"
  4091. "1000100110010100110000111011001011101101110101001001100000001100"
  4092. "1111100101011001100001011010011111100110001111111010101001000111"
  4093. "1000001111111110110101011001100011101101000010101100111101110110"
  4094. "1111000000111101101111010011010111000001100001111110000111011001"
  4095. "1111010010101010100000011000001010001110111110101111011000110110"
  4096. "1011001001000111100000011010011110111101001101011100111100001001"
  4097. "1000010001100010101101001011010011100111000010101110100100111110"
  4098. "1111011010100001111100001110110111001001101011111100111010000111"
  4099. "1110100001010010100001011000100010001010110101101010010100110100"
  4100. "1111111110101101111011010111110111101000101010111010111100010011"
  4101. "1001110010110010111011001000101011011100011101101100100011101100"
  4102. "1111111111111111111111111111111111111111111111111111111111111111"
  4103. "1010101010101010101010101010101010101010101010101010101010101010"
  4104. "1101000101000011110110000010110111101000011000111110111010011001"
  4105. "1101111101111010110111110101100011001000101011101100100111110010"
  4106. "1011011101111111111111010000101111010010000110111110001111100111"
  4107. "1011011110000100101000101100100011101101110010101111000100001000"
  4108. "1000101100001001110001110111011111100100111110111000100100000101"
  4109. "1010100101101000110000011111111010100100001011101001001011010010"
  4110. "1100001101001011101001110000101111100100000011111111101010100011"
  4111. "1100000011000000110100100100100011000101101010101101011011101110"
  4112. "1001100111111111101100110100000110111010110011011010001010001111"
  4113. "1010100111101010101001000101001011101010101011101100000011001110"
  4114. "1100100101001111101001111111011111101011101001011001101101011011"
  4115. "1111100101100000100001110001101011011101110000001010101100110100"
  4116. "1110111011000011110010010010111111011111110111111110001001101011"
  4117. "1011110001011110101100100110011010001101000111001110011110001110"
  4118. "1111111111111111111111111111111111111111111111111111111111111111"
  4119. "1010101010101010101010101010101010101010101010101010101010101010"
  4120. "1110111000110011111011100100010111111011010010011101000000001011"
  4121. "1110110010010110100100001110100011101000100110101001000110101000"
  4122. "1001001101100001111011100010111111111010011111011010100111110001"
  4123. "1010011111000110111100001110111011011000000101101101011000001000"
  4124. "1011111111010001100011010011011111001000000100011011100011101111"
  4125. "1011011011010000111100001000111010101111011101101101010111001000"
  4126. "1010100010001111100111010001110110110101011001011101010011101001"
  4127. "1010001000011110101101011010000011001010110101101000110111100000"
  4128. "1100100011011111101101011101110110001000001011111000100101111101"
  4129. "1110001110100110101001100110100010111111000101001110100100110110"
  4130. "1111011111010111111110100001101111100010101100111101010001000111"
  4131. "1111110000011000101010110101101010000111111000001011100010000000"
  4132. "1010101010110001101001110010010111001010001001011001111101101001"
  4133. "1000001101010100110100010100101010001100001000101100101001101010"
  4134. "1111111111111111111111111111111111111111111111111111111111111111"
  4135. },
  4136. /*157*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "249 BASE256s + 8 ASCII (Sh A80 + 3 double-digits); BWIPP uses 2nd B256 length byte instead of ASCII shift (same no. of codewords)", 0,
  4137. "1010101010101010101010101010101010101010101010101010101010101010"
  4138. "1000010100011101100000010111100110100010110111011011111010000001"
  4139. "1100011110111110100110111101111010101101000010001101001011001100"
  4140. "1101101100010111110011110010101111111101101111111000111010011111"
  4141. "1000100000010100101110100100010011101111110111101111000010011100"
  4142. "1100011100101001111000111100010110100000001000111000010111011111"
  4143. "1001010100111000110001000111000010000110010001101001010100110110"
  4144. "1110111000001001100110011110010110100111101011111101110000100001"
  4145. "1000111010111010101111110111010011110010010000101011111100100100"
  4146. "1110000111101011110100011110010111101001010010011010011100101111"
  4147. "1000000110110110101100000110101010111110101110001001100111001010"
  4148. "1011110011010011100100010101110110010111100011011011000101010001"
  4149. "1111000000110100100110001000001010110000101101001000110010011100"
  4150. "1100010111100011111010011010011110001011111110011001011110100101"
  4151. "1111011001000110110011110110010010011101001110101110100000111100"
  4152. "1111111111111111111111111111111111111111111111111111111111111111"
  4153. "1010101010101010101010101010101010101010101010101010101010101010"
  4154. "1110001011011001101110110011001111000100100101111110101110001101"
  4155. "1110110010110010111000100100011010010000000010101111111100110100"
  4156. "1101000010101101110111100001111110100100111100111100010000000001"
  4157. "1000100110010100110000111011001011101101110101001001100000001100"
  4158. "1111100101011001100001011010011111100110001111111010101001000111"
  4159. "1000001111111110110101011001100011101101000010101100111101110110"
  4160. "1111000000111101101111010011010111000001100001111110000111011001"
  4161. "1111010010101010100000011000001010001110111110101111011000110110"
  4162. "1011001001000111100000011010011110111101001101011100111100001001"
  4163. "1000010001100010101101001011010011100111000010101110100100111110"
  4164. "1111011010100001111100001110110111001001101011111100111010000111"
  4165. "1110100001010010100001011000100010001010110101101010010100110100"
  4166. "1111111110101101111011010111110111101000101010111010111100010011"
  4167. "1001110010110010111011001000101011011100011101101100100011101100"
  4168. "1111111111111111111111111111111111111111111111111111111111111111"
  4169. "1010101010101010101010101010101010101010101010101010101010101010"
  4170. "1101000101000011110110000010110111101000011000111110111010011001"
  4171. "1101111101111010110111110101100011001000101011101100100111110010"
  4172. "1011011101111111111111010000101111010010000110111110001111100111"
  4173. "1011011110000100101000101100100011101101110010101111000100001000"
  4174. "1000101100001001110001110111011111100100111110111000100100000101"
  4175. "1010100101101000110000011111111010100100001011101001001011010010"
  4176. "1100001101001011101001110000101111100100000011111111101010100011"
  4177. "1100000011000000110100100100100011000101101010101101011011101110"
  4178. "1001100111111111101100110100000110111010110011011010001010001111"
  4179. "1010100111101010101001000101001011101010101011101100000011001110"
  4180. "1100100101001111101001111111011111101011101001011001101101011011"
  4181. "1111100101100000100001110001101011011101110000001010101100110100"
  4182. "1110111011000011110010010010111111011111110111111110001001101011"
  4183. "1011110001011110101100100110011010001101000111001110011110001110"
  4184. "1111111111111111111111111111111111111111111111111111111111111111"
  4185. "1010101010101010101010101010101010101010101010101010101010101010"
  4186. "1110111000110011111011100100010111111011010010011101000000001011"
  4187. "1110110010010110100100001110100011101000100110101001000110101000"
  4188. "1001001101100001111011100010111111111010011111011010100111110001"
  4189. "1010011111000110111100001110111011011000000101101101011000001000"
  4190. "1011111111010001100011010011011111001000000100011011100011101111"
  4191. "1011011011010000111100001000111010101111011101101101010111001000"
  4192. "1010100010001111100111010001110110110101011001011101010011101001"
  4193. "1010001000011110101101011010000011001010110101101000110111100000"
  4194. "1100100011011111101101011101110110001000001011111000100101111101"
  4195. "1110001110100110101001100110100010111111000101001110100100110110"
  4196. "1111011111010111111110100001101111100010101100111101010001000111"
  4197. "1111110000011000101010110101101010000111111000001011100010000000"
  4198. "1010101010110001101001110010010111001010001001011001111101101001"
  4199. "1000001101010100110100010100101010001100001000101100101001101010"
  4200. "1111111111111111111111111111111111111111111111111111111111111111"
  4201. },
  4202. /*158*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 1, "10 ASCII + 251 BASE256s + 6 ASCII", 0,
  4203. "1010101010101010101010101010101010101010101010101010101010101010"
  4204. "1010011010011101100000010111100110100010110111011011111010000001"
  4205. "1011001010111110100110111101111010101101000010001101001011001100"
  4206. "1001100010010111110011110010101111111101101111111000111010011111"
  4207. "1010100001010100101110100100010011101111110111101111000010011100"
  4208. "1000001110101001111000111100010110100000001000111000010111011111"
  4209. "1100011000111000110001000111000010000110010001101001010100110100"
  4210. "1111100000001001100110011110010110100111101011111101110000100001"
  4211. "1110101010111010101111110111010011110010010000101011111100100110"
  4212. "1110100111101011110100011110010111101001010010011010011100101111"
  4213. "1100000110110110101100000110101010111110101110001001100111001010"
  4214. "1111110011010011100100010101110110010111100011011011000101010111"
  4215. "1111000000110100100110001000001010110000101101001000110010011110"
  4216. "1000010111100011111010011010011110001011111110011001011110100111"
  4217. "1111011001000110110011110110010010011101001110101110100000101000"
  4218. "1111111111111111111111111111111111111111111111111111111111111111"
  4219. "1010101010101010101010101010101010101010101010101010101010101010"
  4220. "1110001011011001101110110011001111000100100101111110101111000001"
  4221. "1110110010110010111000100100011010010000000010101111111100010100"
  4222. "1101000010101101110111100001111110100100111100111100010100011011"
  4223. "1000100110010100110000111011001011101101110101001001100011101110"
  4224. "1111100101011001100001011010011111100110001111111010110111111111"
  4225. "1000001111111110110101011001100011101101000010101100110011000110"
  4226. "1111000000111101101111010011010111000001100001111110000000101001"
  4227. "1111010010101010100000011000001010001110111110101111000001010010"
  4228. "1011001001000111100000011010011110111101001101011011010101100001"
  4229. "1000010001100010101101001011010011100111000010101000000000111110"
  4230. "1111011010100001111100001110110111001001101010111000100011100111"
  4231. "1110100001010010100001011000100010001010110100101010000001111100"
  4232. "1111111110101101111011010111110111101000000011111010000111001011"
  4233. "1001110010110010111011001000101011011101000101001100110000010100"
  4234. "1111111111111111111111111111111111111111111111111111111111111111"
  4235. "1010101010101010101010101010101010101010101010101010101010101010"
  4236. "1101000101000011110110000010110111101001011000111100010011010001"
  4237. "1101111101111010110111110101100011001110101011001010000000010110"
  4238. "1011011101111111111111010000101111011010000100111110111001010011"
  4239. "1011011110000100101000101100100011100111110011001111110100000000"
  4240. "1000101100001001110001110111011111000100110101111011010110000011"
  4241. "1010100101101000110000011111110010001100110000001001101010011010"
  4242. "1100001101001011101001110000100111000100100111111111011000011011"
  4243. "1100000011000000110100100100101011000111011101101001000000110110"
  4244. "1001100111111111101100110100101110111010010111011011011001111111"
  4245. "1010100111101010101001000101100011101100010100001111010110111110"
  4246. "1100100101001111101001111100011111101100001000111010011110100111"
  4247. "1111100101100000100001111100101011011100011111101010000100001100"
  4248. "1110111011000011110010010100111111001101110101011011101100110001"
  4249. "1011110001011110101100011110011011000000100000001111100001111110"
  4250. "1111111111111111111111111111111111111111111111111111111111111111"
  4251. "1010101010101010101010101010101010101010101010101010101010101010"
  4252. "1110111000110011111011101100010111001111000011011001011111010011"
  4253. "1110110010010110100100100110001010110011000011101001101000101000"
  4254. "1001001101100001111000000010010110101111101001011010001101010001"
  4255. "1010011111000110111001001100001010000000011111101000001111111100"
  4256. "1011111111010001100111010000111110111110101101111110101011100011"
  4257. "1011011011010000100000000000001011001011001110001000100100100000"
  4258. "1010100010001111101111011011100110010010101001111111100001101111"
  4259. "1010001000011010101101100001111010010101101111001101000111100100"
  4260. "1100100011010011101101101000000111010011100001011011101110111101"
  4261. "1110001110101100101010000000001011111110110100101001000111100110"
  4262. "1111011111100101111110011110011110100000010010011001010011111111"
  4263. "1111110010100000101110000101001011111010000011001100110100101100"
  4264. "1011101011110001110011111110010111100110000000011001001101100001"
  4265. "1001010101010100111010010100101010000010001011001100101011101010"
  4266. "1111111111111111111111111111111111111111111111111111111111111111"
  4267. },
  4268. /*159*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 64, 64, 0, "10 ASCII + 251 BASE256s + 6 ASCII; BWIPP same as FAST_MODE", 0,
  4269. "1010101010101010101010101010101010101010101010101010101010101010"
  4270. "1010011010011101100000010111100110100010110111011011111010000001"
  4271. "1011001010111110100110111101111010101101000010001101001011001100"
  4272. "1001100000010111110011110010101111111101101111111000111010011111"
  4273. "1010100000010100101110100100010011101111110111101111000010011100"
  4274. "1000001101101001111000111100010110100000001000111000010111011111"
  4275. "1100010100111000110001000111000010000110010001101001010100110100"
  4276. "1111100000001001100110011110010110100111101011111101110000100001"
  4277. "1111001010111010101111110111010011110010010000101011111100100110"
  4278. "1011110111101011110100011110010111101001010010011010011100101111"
  4279. "1001000110110110101100000110101010111110101110001001100111001010"
  4280. "1011110011010011100100010101110110010111100011011011000101010111"
  4281. "1111000000110100100110001000001010110000101101001000110010011110"
  4282. "1000010111100011111010011010011110001011111110011001011110111111"
  4283. "1111011001000110110011110110010010011101001110101110100000101000"
  4284. "1111111111111111111111111111111111111111111111111111111111111111"
  4285. "1010101010101010101010101010101010101010101010101010101010101010"
  4286. "1110001011011001101110110011001111000100100101111110101110010001"
  4287. "1110110010110010111000100100011010010000000010101111111101110100"
  4288. "1101000010101101110111100001111110100100111100111100010000001011"
  4289. "1000100110010100110000111011001011101101110101001001100001111100"
  4290. "1111100101011001100001011010011111100110001111111010101010010111"
  4291. "1000001111111110110101011001100011101101000010101100100110110110"
  4292. "1111000000111101101111010011010111000001100001111111011001100001"
  4293. "1111010010101010100000011000001010001110111110101111100111000110"
  4294. "1011001001000111100000011010011110111101001101011101110100010101"
  4295. "1000010001100010101101001011010011100111000010101001100011110110"
  4296. "1111011010100001111100001110110111001001101010011111110101111001"
  4297. "1110100001010010100001011000100010001010110101001000001100001010"
  4298. "1111111110101101111011010111110111101000000011111111001100100011"
  4299. "1001110010110010111011001000101011011101000101001001011010011100"
  4300. "1111111111111111111111111111111111111111111111111111111111111111"
  4301. "1010101010101010101010101010101010101010101010101010101010101010"
  4302. "1101000101000011110110000010110111101001011000111110101110110001"
  4303. "1101111101111010110111110101100011001110101001101010001110111010"
  4304. "1011011101111111111111010000101111011010000100111111100001111011"
  4305. "1011011110000100101000101100100011100111110100001100110100001000"
  4306. "1000101100001001110001110111011111000100111110011110101001001111"
  4307. "1010100101101000110000011111110010001100111010001101000111010100"
  4308. "1100001101001011101001110000100111000100110011111101010011101011"
  4309. "1100000011000000110100100100101011000110110111101100011111110110"
  4310. "1001100111111111101100110100101110111011011111111100010000101111"
  4311. "1010100111101010101001000101100011100010010110001111010101010010"
  4312. "1100100101001111101001111100011111101100010000011110000010110011"
  4313. "1111100101100000100001111100101011101011100110101111011011101000"
  4314. "1110111011000011110010010100111111100101101111011011100100011001"
  4315. "1011110001011110101100011110010010010011000111001110100010001100"
  4316. "1111111111111111111111111111111111111111111111111111111111111111"
  4317. "1010101010101010101010101010101010101010101010101010101010101010"
  4318. "1110111000110011111011101100011111111010011111011110010000101011"
  4319. "1110110010010110100100100110000010111011000010101000101111011000"
  4320. "1001001101100001111000000010001111011000111000011100010111001001"
  4321. "1010011111000110111001001100000011111100100101101100011100001100"
  4322. "1011111111010001100111010011000111001011010111011010110000101111"
  4323. "1011011011010000100000001101010011100111111100101100011001000000"
  4324. "1010100010001111101111010101101110101110101001111000101111100001"
  4325. "1010001000011010101101000001010011111100111010101101001111010110"
  4326. "1100100011010011101101010000000111111100010100111011001010101101"
  4327. "1110001110101100101011010010011011001011000010101000001101000110"
  4328. "1111011111100101111110100111011110010111100010111111101000101111"
  4329. "1111110010100000100101001001110010011011001100001001000000000000"
  4330. "1011101011110001111111111011010110010010000001011001000101111001"
  4331. "1001010101010100111110010100001010001100001000001100100011101010"
  4332. "1111111111111111111111111111111111111111111111111111111111111111"
  4333. },
  4334. /*160*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066", -1, 0, 88, 88, 1, "10 ASCII + 252 BASE256s + 10 ASCII + 253 BASE256 + 6 ASCII", 0,
  4335. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4336. "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
  4337. "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
  4338. "1001100010010111001111110010101111110110111111100011101001100100011100101011100101001111"
  4339. "1010100001010100111010100100010110111111011011111100001001111100101011000101111000110100"
  4340. "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
  4341. "1100011000111001000100100111000000011001000011100101010011011101001001110001001001110000"
  4342. "1111100100001000011001111110010010011110101111110111000000010000011111100000101111100001"
  4343. "1110101010111010111110110111010111001001000010101111110010010001101101110001010010011110"
  4344. "1110100111101011010001111110010110100101001110001001101011010100011111101100001000111101"
  4345. "1100000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
  4346. "1111110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
  4347. "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
  4348. "1000010111100011101001111010011000101111111110000010000000111010011010011110000010000111"
  4349. "1111011001000111001110110110010001110100111010111010000011110011101001000010011000110100"
  4350. "1110001011011000111011110011001100010010010111110010010110001111011011001010101101010101"
  4351. "1110110010110011100010100100011001000000001010111110110100111001101010111110011110101100"
  4352. "1101000010101101011111100001111010010011110110010110101011010001111010011100001111100001"
  4353. "1000100110010101000010111011001110110111010011000110000101010100001010101111100111010110"
  4354. "1111100101011000000101111010011110011000110111110001010110010000111110111110001110011111"
  4355. "1000001111111111010100111001100110110100001010110011111111100111001100010101010111010110"
  4356. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4357. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4358. "1111000000111100111101110011010100000111101110010000001111101101011100011101100011000001"
  4359. "1111010010101010000000111000001000111011110011111100101011100100001110001110101000011010"
  4360. "1011001001000110000001111010011011110011001110110010010011011000011100001000010010101101"
  4361. "1000010001100010110100101011010110011100001010000100011011111010101110101111000001010010"
  4362. "1111011010100001110001101110110100111110000111110110111111111101111010010011011011011001"
  4363. "1110100001010010000100111000100000101010010011101000000110011001001001110010111100111010"
  4364. "1111111110101101101101110111110110000101101111111110001001011001111111010011010100101011"
  4365. "1001110010110011101100101000101101110000010010011101100000111011001000000110100011000100"
  4366. "1101000101000011011001100010110100111011100111010101001000101100111100010010100111001001"
  4367. "1101111101111011011110110101100100111010011011011011101100110111001111111000010011111010"
  4368. "1011011101111111111101110000100110000001001110100111111111011001011010100101111100001011"
  4369. "1011011110000100100010101100101010011110010010100101100001110111001001010111001010000000"
  4370. "1000101100001001000111110110100000110110111110100101000000111101011011101000010010011011"
  4371. "1010100101101001000000111111111011010000110011101100111010001001001000101111110001101010"
  4372. "1100001101001010100111110110101000000101011110111001001000101110011101100011110100001011"
  4373. "1100000011000001010010100100101000011010001011011110110011100010001010111111100011110110"
  4374. "1001100111111110110011101101111010111010111110111001011001010010011001011111111001100111"
  4375. "1010100111101010100100100111010110000100010010100000101001010011101001100100000000001010"
  4376. "1100100101001110100101111101011101111100000111001111111001111110011100101010000001010011"
  4377. "1111100101100000000110111100010011111110100011011001010011111100101010100100101010010000"
  4378. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4379. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4380. "1110111011000011000011100110100001000011101111100100110001010001011000011011100111110001"
  4381. "1011110001011110110010111000010110101100000010111111100001100111101100111000101001100100"
  4382. "1110111000110011010011100100101011010111101111001001110010101000111110100000111110011011"
  4383. "1110110010010110010110111110000100011110100010011011010001100111101101000010111011100000"
  4384. "1001001101100111110101100101000110000101011110111011100001110110111001101000010000100001"
  4385. "1010011111000111111000101110000110010111100010010011100110100111001001010110010011000100"
  4386. "1011111111001001110101111101001010101000010111011000011111100111011000010010010100110111"
  4387. "1011011011010000010000110011001111000011100010000000001110111001101100010000011000110000"
  4388. "1010100011101100011011101011110011110011100110001111000000101000011110010010011010111011"
  4389. "1010001000011010111010110110001011000000110011011100000000100010001001100000110110001110"
  4390. "1100100001100110110001100001110101111011110111010000001110000011111000111000000000011101"
  4391. "1110001111000110110100101110001001101101101011011100011100011010001110000101100100100110"
  4392. "1111010000110111100101110001101010000100000110011110010110010001111011000100000111100111"
  4393. "1111110011000001111100101110001011010010001011101111011001001111001011100011001001110100"
  4394. "1010001100000001101001110011111010100010101111001101101010101110011011011111110001001001"
  4395. "1000010111011010100000100111100011110101100011111000111101011110101000010110011111001110"
  4396. "1011010111001100001111100100010111111100001110101000110101100001011111010100111000110101"
  4397. "1110110110110001011010111001011010001000011011010100110101001111101001100111110001010100"
  4398. "1111110001100101100011101101110100111110000111000000000000101001011111111011011110000111"
  4399. "1010001001101110110100110011000100001001011010111110010111000110001101010100100000101100"
  4400. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4401. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4402. "1000001000101010111111100010100100011111100111111001010000110111111110011011011110111011"
  4403. "1011111001101000001110100010111101010001001011011011100111011000101110111011010100011000"
  4404. "1111101000010101010011110011100100001101001110001011010000001000011000010111011000100001"
  4405. "1000111101011010101100110110101011111111110010011100110000100001101000110110001000101010"
  4406. "1011010110000010111111100101011010000011000111111101010000001001111101010101000111000101"
  4407. "1000010000110101101110110100000110110000101011001010111110101001101000010100010001000010"
  4408. "1111101100100000100111101110011111010101011110111101101010000000011001001011011011110101"
  4409. "1000101000110000000100100101001000011010011010101101100111101101101100111010010010011110"
  4410. "1000011101010100111111101011010111101000100110001100101100101000011010110111010010011011"
  4411. "1001110101110101001010101010100110010011100011101110011000110100001101000101101101110110"
  4412. "1110111110100110010111110110101110010100101111010011011000001100011010110111000001001001"
  4413. "1010110001101110011000100101010001110100011010110110100111110101001100000110010011001000"
  4414. "1110010001000010100001100001100011000001011111111010001110100010011100111001100100100001"
  4415. "1000100010000000110110110010011101011111000010001010111110101001101010000011000101010000"
  4416. "1100010110111111001001110000010001011010100110010111110001000011111100101101010000001001"
  4417. "1100111101111100100110111110111100111011011011110010110000001001101011011100110100100100"
  4418. "1010101101010111011011110011001001010101101111111011110110101011011001010111101011000111"
  4419. "1110001001100111001100101100111100010100100011110101011111010101001000101001111001111010"
  4420. "1001111110110111000111110010110001110001110111100111011110000010111010010101111110111001"
  4421. "1101010100110101110000110100001000100000101010010010101110100111001111100010001001001100"
  4422. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4423. },
  4424. /*161*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200" "\061\062\063\064\065\066", -1, 0, 88, 88, 0, "10 ASCII + 252 BASE256s + 10 ASCII + 253 BASE256 + 6 ASCII; BWIPP same as FAST_MODE", 0,
  4425. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4426. "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
  4427. "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
  4428. "1001100000010111001111110010101111110110111111100011101001100100011100101011100101001111"
  4429. "1010100000010100111010100100010110111111011011111100001001111100101011000101111000110100"
  4430. "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
  4431. "1100010100111001000100100111000000011001000011100101010011011101001001110001001001110000"
  4432. "1111100000001000011001111110010010011110101111110111000000010000011111100000101111100001"
  4433. "1111001010111010111110110111010111001001000010101111110010010001101101110001010010011110"
  4434. "1011110111101011010001111110010110100101001110001001101011010100011111101100001000111101"
  4435. "1001000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
  4436. "1011110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
  4437. "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
  4438. "1000010111100011101001111010011000101111111110000010000000111010011010011110000010000111"
  4439. "1111011001000111001110110110010001110100111010111010000011110011101001000010011000110100"
  4440. "1110001011011000111011110011001100010010010111110010010110001111011011001010101101010101"
  4441. "1110110010110011100010100100011001000000001010111110110100111001101010111110011110101100"
  4442. "1101000010101101011111100001111010010011110110010110101011010001111010011100001111100001"
  4443. "1000100110010101000010111011001110110111010011000110000101010100001010101111100111010110"
  4444. "1111100101011000000101111010011110011000110111110001010110010000111110111110001110011111"
  4445. "1000001111111111010100111001100110110100001010110011111111100111001100010101010111010110"
  4446. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4447. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4448. "1111000000111100111101110011010100000111101110010000001111101101011100011101100011000001"
  4449. "1111010010101010000000111000001000111011110011111100101011100100001110001110101000001110"
  4450. "1011001001000110000001111010011011110011001110110010010011011000011100001000010010001001"
  4451. "1000010001100010110100101011010110011100001010000100011011111010101110101111000000100110"
  4452. "1111011010100001110001101110110100111110000111110110111111111101111010010011011001010011"
  4453. "1110100001010010000100111000100000101010010011101000000110011001001001110010111010110110"
  4454. "1111111110101101101101110111110110000101101111111110001001011001111111010011001100010011"
  4455. "1001110010110011101100101000101101110000010010011101100000111011001000000110110001111100"
  4456. "1101000101000011011001100010110100111011100111010101001000101100111100010010110001110001"
  4457. "1101111101111011011110110101100100111010011011011011101100110111001111111000100001000110"
  4458. "1011011101111111111101110000100110000001001110100111111111011001011010100101011101111011"
  4459. "1011011110000100100010101100101010011110010010100101100001110111001001010000001001010000"
  4460. "1000101100001001000111110110100000110110111110100101000000111101011011111010000000011111"
  4461. "1010100101101001000000111111111011010000110011101100111010001001001000101111010001000110"
  4462. "1100001101001010100111110110101000000101011110111001001000101110011100011000010011111011"
  4463. "1100000011000001010010100100101000011010001011011110110011100010001011000011001011100110"
  4464. "1001100111111110110011101101111010111010111110111001011001010010011110111101100111110111"
  4465. "1010100111101010100100100111010110000100010010100000101001010011101001100110011100001110"
  4466. "1100100101001110100101111101011101111100000111001111111001111111111010110101000110001011"
  4467. "1111100101100000000110111100010011111110100011011001010011111101101101111000011111100100"
  4468. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4469. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4470. "1110111011000011000011100110100001000011101111100100110001010001111011011111000010100101"
  4471. "1011110001011110110010111000010110101100000010111111100001100010101000011111110101110110"
  4472. "1110111000110011010011100100101011010111101111001001110010100000111101001100111000110011"
  4473. "1110110010010110010110111110000100011110100010011011010001110101101111111011101100111000"
  4474. "1001001101100111110101100101000110000101011110111011100000011101111111000001011001000001"
  4475. "1010011111000111111000101110000110010111100010010011100110111111101000111101011000100000"
  4476. "1011111111001001110101111101001010101000010111011000011100110001011110010000001100000111"
  4477. "1011011011010000010000110011001111000011100010000000001101010100101111011010110100011100"
  4478. "1010100011101100011011101011110011110011100110001111000000000010011010011111100010100011"
  4479. "1010001000011010111010110110001011000000110011011100011101110111001011000110101000011000"
  4480. "1100100001100110110001100001110101111011110111010001010100101011011001000101010100111101"
  4481. "1110001111000110110100101110001001101101101011011100101011110011101001110001111010100110"
  4482. "1111010000110111100101110001101010000100000110011111110010101110011011111000101000001111"
  4483. "1111110011000001111100101110001011010010001011101011010001010000101100100110101101100100"
  4484. "1010001100000001101001110011111010100010101111010000011111000110011001000011011001011101"
  4485. "1000010111011010100000100111100011110101100011110010101111111011101100110101101011101110"
  4486. "1011010111001100001111100100010111111100001111000001011110000001011010101011110111100101"
  4487. "1110110110110001011010111001011010001000011011010011001111100101101010100011100001101010"
  4488. "1111110001100101100011101101110100111110001110001101001000011100011001010111101000010111"
  4489. "1010001001101110110100110011000100001001000010110010100011100101001010001111111111000100"
  4490. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4491. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4492. "1000001000101010111111100010100100011110100110100110100110110100111010111010001101101011"
  4493. "1011111001101000001110100010111101010000011011111010110111111100001101000100110000101100"
  4494. "1111101000010101010011110011100100001101011111000000000111011011011000011001000101011101"
  4495. "1000111101011010101100110110101011111111111011001011010000000010001000001001001010001010"
  4496. "1011010110000010111111100101011010000011010110110111101001111100011001101011111100011111"
  4497. "1000010000110101101110110100000110110001000011101110000010100100001111011011000001000110"
  4498. "1111101100100000100111101110011111010110001111010111011001110001011111000110010111011101"
  4499. "1000101000110000000100100101001000010010111011100000100000111100101101000101010100110110"
  4500. "1000011101010100111111101011010111101010010110001010110110110111011011010111010000100011"
  4501. "1001110101110101001010101010100110011000000010000010000111100001101000100011101001101110"
  4502. "1110111110100110010111110110101110110000101111011100101011111111111111100111011000110101"
  4503. "1010110001101110011000100101010010100011100010100001011111000000001101011100101000010000"
  4504. "1110010001000010100001100001100000001111000111101100100110110001111100010110011010011101"
  4505. "1000100010000000110110110010010100000101101010100010011100010110101101001111101111011110"
  4506. "1100010110111111001001110000010101001011011110011011011001001010111001110100101000010001"
  4507. "1100111101111100100110111110101111110010011010010111010111100000001101010001011010000100"
  4508. "1010101101010111011011110011110111000010110111111000000000010001111101011110011110110111"
  4509. "1110001001100111001100101110010110100011001011110001111110111001001000111011100111010010"
  4510. "1001111110110111000111110000110000011001010111000100001111101000111110011101010110101001"
  4511. "1101010100110101110000110100101000010000100010110010111110101011001111100010000101001100"
  4512. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4513. },
  4514. /*162*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 88, 88, 1, "10 ASCII + 252 BASE256s + 10 ASCII + 304 BASE256, no padding", 0,
  4515. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4516. "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
  4517. "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
  4518. "1001100010010111001111110010101111110110111111100011101001100100011100101011100101001111"
  4519. "1010100001010100111010100100010110111111011011111100001001111100101011000101111000110100"
  4520. "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
  4521. "1100011000111001000100100111000000011001000011100101010011011101001001110001001001110000"
  4522. "1111100100001000011001111110010010011110101111110111000000010000011111100000101111100001"
  4523. "1110101010111010111110110111010111001001000010101111110010010001101101110001010010011110"
  4524. "1110100111101011010001111110010110100101001110001001101011010100011111101100001000111101"
  4525. "1100000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
  4526. "1111110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
  4527. "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
  4528. "1000010111100011101001111010011000101111111110000010000000111010011010011110000010010111"
  4529. "1111011001000111001110110110010001110100111010111010000011110011101001000010011000111000"
  4530. "1110001011011000111011110011001100010010010111110010010110001111011011001010101100001001"
  4531. "1110110010110011100010100100011001000000001010111110110100111001101010111110011110110100"
  4532. "1101000010101101011111100001111010010011110110010110101011010001111010011100001101000001"
  4533. "1000100110010101000010111011001110110111010011000110000101010100001010101111100000111110"
  4534. "1111100101011000000101111010011110011000110111110001010110010000111110111110011111011111"
  4535. "1000001111111111010100111001100110110100001010110011111111100111001100010101011001101110"
  4536. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4537. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4538. "1111000000111100111101110011010100000111101110010000001111101101011100011100100111001001"
  4539. "1111010010101010000000111000001000111011110011111100101011100100001110001110110001001110"
  4540. "1011001001000110000001111010011011110011001110110010010011011000011100001110110011111001"
  4541. "1000010001100010110100101011010110011100001010000100011011111010101110101000100001100110"
  4542. "1111011010100001110001101110110100111110000111110110111111111101111010000110011011011111"
  4543. "1110100001010010000100111000100000101010010011101000000110011001001001111000110000001010"
  4544. "1111111110101101101101110111110110000101101111111110001001011001111111000011011101111011"
  4545. "1001110010110011101100101000101101110000010010011101100000111011001000111101111101001100"
  4546. "1101000101000011011001100010110100111011100111010101001000101100111000110010101011010001"
  4547. "1101111101111011011110110101100100111010011011011011101100110111001000010011100100011010"
  4548. "1011011101111111111101110000100110000001001110100111111111011000111101011111111010010111"
  4549. "1011011110000100100010101100101010011110010010100101100001110111001111110101011010110000"
  4550. "1000101100001001000111110110100000110110111110100101000000111111111111001001000011000101"
  4551. "1010100101101001000000111111111011010000110011101100111010001011101010000101111001101100"
  4552. "1100001101001010100111110110101000000101011110111001001000101010011011001011001111101011"
  4553. "1100000011000001010010100100101000011010001011011110110011100000001101100001100011010110"
  4554. "1001100111111110110011101101111010111010111110111001011001010001111101011110100111001111"
  4555. "1010100111101010100100100111010110000100010010100000101001011011101000011100010100100110"
  4556. "1100100101001110100101111101011101111100000111001111111001111101011101010000100010110011"
  4557. "1111100101100000000110111100010011111110100011011001010011011011101100000001010000110000"
  4558. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4559. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4560. "1110111011000011000011100110100001000011101111100100110001001110011000000001000001111101"
  4561. "1011110001011110110010111000010110101100000010111111100011010000001100111010011101011110"
  4562. "1110111000110011010011100100101011010111101111001001110010000000011111110111111010000011"
  4563. "1110110010010110010110111110000100011110100010011011010100011000101110110101100000000000"
  4564. "1001001101100111110101100101000110000101011110111011101100001010011110111100001101010001"
  4565. "1010011111000111001000101110000110010111100010010011001010101100001010000101101001101000"
  4566. "1011111111001001100101111101001010101000010111011000001001000001111101001011000001000011"
  4567. "1011011011010000101000110011001111000011100010000010011011111110001000111101000110010100"
  4568. "1010100011101100011011101011110011110011100110001110000000111111111011101011111111101111"
  4569. "1010001000011010111010110110001011000000110011010000101011000001001010100000101011100010"
  4570. "1100100001100110110001100001110101111011110111011101100000010010011001011001111001001101"
  4571. "1110001111000110110100101110001001101101101011111101111000110001001001100000100000001110"
  4572. "1111010000110111100101110001101010000100000110001101010110100010111100100101011100011111"
  4573. "1111110011000001111100101110001011010010000011100001110011100110001000000101100010100100"
  4574. "1010001100000001101001110011111010100010101110010111111000110101011100110010101111100001"
  4575. "1000010111011010100000100111100011110101110010110110000110001100101101001111000001111010"
  4576. "1011010111001100001111100100010111111100110110100000011010110110111110100011100110010011"
  4577. "1110110110110001011010111001011010001010111010001010101001110100101010110101100011110000"
  4578. "1111110001100101100011101101110100111100101110111011010111011110111010101011110011010111"
  4579. "1010001001101110110100110011000100000010110010011110011101101001001101001001010011000100"
  4580. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4581. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4582. "1000001000101010111111100010100100011001111111000011111100010010111110000100000100101011"
  4583. "1011111001101000001110100010111101100101011011010001000100111101101100101010001011101100"
  4584. "1111101000010101010011110011100100111000101110000011000001010011111011000110101100110101"
  4585. "1000111101011010101100110110101001000010101010001010111111110101001010001001001010010110"
  4586. "1011010110000010111111100101011000101001010110001101010110100000111110110000111101110001"
  4587. "1000010000110101101110110100001110111101001011010010000111011111101111011101001000100110"
  4588. "1111101100100000100111101110011001101110101110100001011100101001011110010100111111100101"
  4589. "1000101000110000000100100101010111001110010010011011001010001000101000100100100101001110"
  4590. "1000011101010100111111101011111011101010110111111110000000111001111100011101100110100011"
  4591. "1001110101110101001010101000000010000010110011100010010000111011101111111100101110011110"
  4592. "1110111110100110010111110100110000100101000110001000000010101101111010000001011110010001"
  4593. "1010110001101110011000101011011111001111011010011011011000010100001011100101011010111100"
  4594. "1110010001000010100001101000001111111101000110101000001000010010011001110111101011100011"
  4595. "1000100010000000110100101001001001000100110010110000000001011100001001100001000110001110"
  4596. "1100010110111111001011111101011101110010100110111111010100001010111100011011100011100001"
  4597. "1100111101111100101100101010011100111101001010011110000111110011101100100000001011011100"
  4598. "1010101101010111010011111000011100100011011110011011010001011000111010101000010111010111"
  4599. "1110001001100111011110111101000101001011000011100101001111000111101100100000000000011110"
  4600. "1001111110110111100111101011110100110001000110000111011111101000111100001101011010100001"
  4601. "1101010100110101100000110110001000001000101011110010001110100101001111000010001111001100"
  4602. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4603. },
  4604. /*163*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "\101\102\103\104\105\106\107\110\111\112\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\061\062\063\064\065\066\067\070\071\060\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200\200", -1, 0, 88, 88, 0, "10 ASCII + 252 BASE256s + 10 ASCII + 304 BASE256, no padding; BWIPP same as FAST_MODE", 0,
  4605. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4606. "1010011010011100000001110111100010001011011111001111101000000110011111111000100110101111"
  4607. "1011001010111110011010111101111010110100001010010100101100110010101011111110101001100000"
  4608. "1001100000010111001111110010101111110110111111100011101001100100011100101011100101001111"
  4609. "1010100000010100111010100100010110111111011011111100001001111100101011000101111000110100"
  4610. "1000001110101001100011111100010010000000100110100001011101011010111111000101011110001111"
  4611. "1100010100111001000100100111000000011001000011100101010011011101001001110001001001110000"
  4612. "1111100000001000011001111110010010011110101111110111000000010000011111100000101111100001"
  4613. "1111001010111010111110110111010111001001000010101111110010010001101101110001010010011110"
  4614. "1011110111101011010001111110010110100101001110001001101011010100011111101100001000111101"
  4615. "1001000110110110110000100110101011111010111010000110011111101100001001111011110110101100"
  4616. "1011110011010010010001110101110001011110001111001101110110100100011101111010010101001111"
  4617. "1111000000110100011000101000001011000010110011000011011001100110001011000110010000100110"
  4618. "1000010111100011101001111010011000101111111110000010000000111010011010011110000010010111"
  4619. "1111011001000111001110110110010001110100111010111010000011110011101001000010011000111000"
  4620. "1110001011011000111011110011001100010010010111110010010110001111011011001010101100001001"
  4621. "1110110010110011100010100100011001000000001010111110110100111001101010111110011110110100"
  4622. "1101000010101101011111100001111010010011110110010110101011010001111010011100001101000001"
  4623. "1000100110010101000010111011001110110111010011000110000101010100001010101111100000111110"
  4624. "1111100101011000000101111010011110011000110111110001010110010000111110111110011111011111"
  4625. "1000001111111111010100111001100110110100001010110011111111100111001100010101011001101110"
  4626. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4627. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4628. "1111000000111100111101110011010100000111101110010000001111101101011100011100100111001001"
  4629. "1111010010101010000000111000001000111011110011111100101011100100001110001110110001011010"
  4630. "1011001001000110000001111010011011110011001110110010010011011000011100001110110011011101"
  4631. "1000010001100010110100101011010110011100001010000100011011111010101110101000100000010010"
  4632. "1111011010100001110001101110110100111110000111110110111111111101111010000110011001010101"
  4633. "1110100001010010000100111000100000101010010011101000000110011001001001111000110110000110"
  4634. "1111111110101101101101110111110110000101101111111110001001011001111111000011000101000011"
  4635. "1001110010110011101100101000101101110000010010011101100000111011001000111101101111110100"
  4636. "1101000101000011011001100010110100111011100111010101001000101100111000110010111101101001"
  4637. "1101111101111011011110110101100100111010011011011011101100110111001000010011010110100110"
  4638. "1011011101111111111101110000100110000001001110100111111111011000111101011111011011100111"
  4639. "1011011110000100100010101100101010011110010010100101100001110111001111110010011001100000"
  4640. "1000101100001001000111110110100000110110111110100101000000111111111111011011010001000001"
  4641. "1010100101101001000000111111111011010000110011101100111010001011101010000101011001000000"
  4642. "1100001101001010100111110110101000000101011110111001001000101010011010110000101000011011"
  4643. "1100000011000001010010100100101000011010001011011110110011100000001100011101001011000110"
  4644. "1001100111111110110011101101111010111010111110111001011001010001111010111100111001011111"
  4645. "1010100111101010100100100111010110000100010010100000101001011011101000011110001000100010"
  4646. "1100100101001110100101111101011101111100000111001111111001111100111011001111100101101011"
  4647. "1111100101100000000110111100010011111110100011011001010011011010101011011101100101000100"
  4648. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4649. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4650. "1110111011000011000011100110100001000011101111100100110001001110111011000101100100101001"
  4651. "1011110001011110110010111000010110101100000010111111100011010101001000011101000001001100"
  4652. "1110111000110011010011100100101011010111101111001001110010001000011100011011111100101011"
  4653. "1110110010010110010110111110000100011110100010011011010100001010101100001100110111011000"
  4654. "1001001101100111110101100101000110000101011110111011101101100001011000010101000100110001"
  4655. "1010011111000111001000101110000110010111100010010011001010110100101011101110100010001100"
  4656. "1011111111001001100101111101001010101000010111011000001010010111111011001001011001110011"
  4657. "1011011011010000101000110011001111000011100010000010011000010011001011110111101010111000"
  4658. "1010100011101100011011101011110011110011100110001110000000010101111111100110000111110111"
  4659. "1010001000011010111010110110001011000000110011010000110110010100001000000110110101110100"
  4660. "1100100001100110110001100001110101111011110111011100111010111010111000100100101101101101"
  4661. "1110001111000110110100101110001001101101101011111101001111011000101110010100111110001110"
  4662. "1111010000110111100101110001101010000100000110001100110010011101011100011001110011110111"
  4663. "1111110011000001111100101110001011010010000011100101111011111001101111000000000110110100"
  4664. "1010001100000001101001110011111010100010101110001010001101011101011110101110000111110101"
  4665. "1000010111011010100000100111100011110101110010111100010100101001101001101100110101011010"
  4666. "1011010111001100001111100100010111111100110111001001110001010110111011011100101001000011"
  4667. "1110110110110001011010111001011010001010111010001101010011011110101001110001110011001110"
  4668. "1111110001100101100011101101110100111100100111110110011111101011111100000111000101000111"
  4669. "1010001001101110110100110011000100000010101010010010101001001010001010010010001100101100"
  4670. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4671. "1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4672. "1000001000101010111111100010100100011000111110011100001010010001111010100101010111111011"
  4673. "1011111001101000001110100010111101100100001011110000010100011001001111010101101111011000"
  4674. "1111101000010101010011110011100100111000111111001000010110000000111011001000110001001001"
  4675. "1000111101011010101100110110101001000010100011011101011111010110101010110110001000110110"
  4676. "1011010110000010111111100101011000101001000111000111101111010101011010001110000110101011"
  4677. "1000010000110101101110110100001110111100100011110110111011010010001000010010011000100010"
  4678. "1111101100100000100111101110011001101101111111001011101111011000011000011001110011001101"
  4679. "1000101000110000000100100101010111000110110011010110001101011001101001011011100011100110"
  4680. "1000011101010100111111101011111011101000000111111000011010100110111101111101100100011011"
  4681. "1001110101110101001010101000000010001001010010001110001111101110001010011010101010000110"
  4682. "1110111110100110010111110100110000000001000110000111110001011110011111010001000111101101"
  4683. "1010110001101110011000101011011100011000100010001100100000100001001010111111100001100100"
  4684. "1110010001000010100001101000001100110011011110111110100000000001111001011000010101011111"
  4685. "1000100010000000110100101001000000011110011010011000100011100011001110101101101100000000"
  4686. "1100010110111111001011111101011001100011011110110011111100000011111001000010011011111001"
  4687. "1100111101111100101100101010001111110100001011111011100000011010001010101101100101111100"
  4688. "1010101101010111010011111000100010110100000110011000100111100010011110100001100010100111"
  4689. "1110001001100111011110111111101111111100101011100001101110101011101100110010011110110110"
  4690. "1001111110110111100111101001110101011001100110100100001110000010111000000101110010110001"
  4691. "1101010100110101100000110110101000111000100011010010011110101001001111000010000011001100"
  4692. "1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4693. },
  4694. /*164*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@_", -1, 0, 8, 32, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 2 chars, not last 3 like Zint", 0,
  4695. "10101010101010101010101010101010"
  4696. "10000000001001111001101100001101"
  4697. "10000000000001001001110011001100"
  4698. "10000000000110011111100101100001"
  4699. "11000000110101101100001101111000"
  4700. "11000001110100111000111101101011"
  4701. "11000000000000001001000001011010"
  4702. "11111111111111111111111111111111"
  4703. },
  4704. /*165*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@_", -1, 0, 8, 32, 0, "EDI **NOT SAME** (see FAST_MODE); BWIPP uses different encodation", 0,
  4705. "10101010101010101010101010101010"
  4706. "11100000000000011000100100101001"
  4707. "11100000000000001010011101001000"
  4708. "10000000000011111010010010100101"
  4709. "10000000000100101101001011011110"
  4710. "11000000001000111010111110011001"
  4711. "10000000000001001010010000010000"
  4712. "11111111111111111111111111111111"
  4713. },
  4714. /*166*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 3 chars, not last 4 like Zint", 0,
  4715. "1010101010101010"
  4716. "1000000001000001"
  4717. "1000000000111110"
  4718. "1000000100010001"
  4719. "1000000000101110"
  4720. "1000001001110111"
  4721. "1000010001010110"
  4722. "1110100011110001"
  4723. "1110001110011000"
  4724. "1010010110010101"
  4725. "1000111010010110"
  4726. "1001011001000001"
  4727. "1000110101100010"
  4728. "1110100110001101"
  4729. "1010100000010010"
  4730. "1111111111111111"
  4731. },
  4732. /*167*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@_", -1, 0, 8, 32, 0, "AAEEEEEEEEA; BWIPP uses different encodation, see above", 1,
  4733. "10101010101010101010101010101010"
  4734. "10100000000000111000110101111001"
  4735. "10000000000001001000100100011000"
  4736. "10010000000011011010001100000101"
  4737. "10000000001111001001110110011110"
  4738. "11000110001010011011101010011011"
  4739. "10000110001100001001010000001110"
  4740. "11111111111111111111111111111111"
  4741. },
  4742. /*168*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 4 chars, not last 1 like Zint", 0,
  4743. "1010101010101010"
  4744. "1000000001000001"
  4745. "1000000000001100"
  4746. "1000000100100001"
  4747. "1000000000000010"
  4748. "1000001001100111"
  4749. "1000010001000110"
  4750. "1000000010101001"
  4751. "1000111011011000"
  4752. "1001110001101101"
  4753. "1000111000000000"
  4754. "1000100111110111"
  4755. "1011100111000100"
  4756. "1011000110111101"
  4757. "1000100000100010"
  4758. "1111111111111111"
  4759. },
  4760. /*169*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@_", -1, 0, 16, 16, 0, "AAAEEEEEEEEA; BWIPP uses different encodation, see above", 0,
  4761. "1010101010101010"
  4762. "1010011101000001"
  4763. "1000000000101000"
  4764. "1001000100101111"
  4765. "1000000000000100"
  4766. "1100001001010011"
  4767. "1000010000001000"
  4768. "1000000000100001"
  4769. "1000001011010100"
  4770. "1000000001111001"
  4771. "1000000110011000"
  4772. "1000011111101101"
  4773. "1001011010100110"
  4774. "1011001101111101"
  4775. "1011000011010010"
  4776. "1111111111111111"
  4777. },
  4778. /*170*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 5 chars, not last 2 like Zint", 0,
  4779. "1010101010101010"
  4780. "1000000000100001"
  4781. "1000000000111000"
  4782. "1000000010111001"
  4783. "1000000100100100"
  4784. "1000001000100111"
  4785. "1000000011111110"
  4786. "1000000110111001"
  4787. "1000110010010100"
  4788. "1001111110000101"
  4789. "1000000010010000"
  4790. "1000101101011001"
  4791. "1001010001011110"
  4792. "1000000111000101"
  4793. "1011100000010010"
  4794. "1111111111111111"
  4795. },
  4796. /*171*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "EEEEEEEEEEEEA; BWIPP uses different encodation, see above", 1,
  4797. "1010101010101010"
  4798. "1000000001100001"
  4799. "1000000000110100"
  4800. "1000000100001011"
  4801. "1000000000001100"
  4802. "1000001001101111"
  4803. "1000010001000110"
  4804. "1000000001101001"
  4805. "1000001111100100"
  4806. "1000001011000101"
  4807. "1000001001010000"
  4808. "1000011111011001"
  4809. "1010111001010110"
  4810. "1001100010001101"
  4811. "1000000000100010"
  4812. "1111111111111111"
  4813. },
  4814. /*172*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "@@@@@@@@@@@@@_", -1, 0, 12, 26, 0, "EDI; BWIPP uses different encodation, switching to ASC for last 2 chars, not last 3 like Zint", 0,
  4815. "10101010101010101010101010"
  4816. "10000000001001100100101011"
  4817. "10000000000010000000111000"
  4818. "10000000000100011100111111"
  4819. "10000000110100111100011110"
  4820. "10000001110100100011100001"
  4821. "10000000111110000011001100"
  4822. "10000000101110100110101101"
  4823. "10000000101010000110010000"
  4824. "10000010101001111100101001"
  4825. "10000001000001101011010000"
  4826. "11111111111111111111111111"
  4827. },
  4828. /*173*/ { BARCODE_DATAMATRIX, -1, -1, -1, -1, -1, "@@@@@@@@@@@@@_", -1, 0, 16, 16, 0, "AEEEEEEEEEEEEA; BWIPP uses different encodation, see above", 1,
  4829. "1010101010101010"
  4830. "1110000001000001"
  4831. "1110000001000000"
  4832. "1000000011000111"
  4833. "1000000100011100"
  4834. "1100000000000011"
  4835. "1000000011100000"
  4836. "1000000011101001"
  4837. "1000001011000000"
  4838. "1000001110101001"
  4839. "1000101111000000"
  4840. "1000110100011011"
  4841. "1011100010001000"
  4842. "1000000000000101"
  4843. "1001100000111010"
  4844. "1111111111111111"
  4845. },
  4846. /*174*/ { BARCODE_DATAMATRIX, FAST_MODE, 26, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 24, 24, 0, "Mix of modes TEX ASC C40 ASC EDI BAS; BWIPP uses different encodation", 0,
  4847. "101010101010101010101010"
  4848. "100111011110011101000101"
  4849. "101111001100101101101000"
  4850. "101110110110001110110011"
  4851. "100100110000101100000010"
  4852. "111011010011000111011111"
  4853. "101010011000101100110110"
  4854. "100111101000011111010001"
  4855. "100111010000001011100100"
  4856. "101110101000001101111011"
  4857. "101111100000100111011110"
  4858. "111111100000011100111011"
  4859. "100111000010101010001010"
  4860. "101000000010000111010101"
  4861. "110100001000111110001000"
  4862. "100000000100100010100001"
  4863. "111000101000011111101100"
  4864. "111000101111000100000011"
  4865. "111001010010011000011000"
  4866. "100001100010101101010101"
  4867. "101011000110000010000110"
  4868. "110111111101101101101101"
  4869. "111101010110111111111010"
  4870. "111111111111111111111111"
  4871. },
  4872. /*175*/ { BARCODE_DATAMATRIX, -1, 26, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 24, 24, 0, "TTTTTTTTTAAAACCCCCCCCCAAAAAEEEEEEEAA; BWIPP uses different encodation", 0,
  4873. "101010101010101010101010"
  4874. "100111011110011100000101"
  4875. "101111001100101100111100"
  4876. "101110110110001001111011"
  4877. "100100110000101000010110"
  4878. "111011010011000000000111"
  4879. "101010011000100011100110"
  4880. "100111101000000010101001"
  4881. "100111010000000001110100"
  4882. "101110101000001010001111"
  4883. "101111100000000100010110"
  4884. "111111100000101111100001"
  4885. "100111000010010000000000"
  4886. "101001100010111000100101"
  4887. "110101101110101010101000"
  4888. "100010000111101110100001"
  4889. "111000111000111001101000"
  4890. "101001101100011000001011"
  4891. "100011000001001010000000"
  4892. "100111010111001001111001"
  4893. "101100001001101010011110"
  4894. "111101111010101100000101"
  4895. "111011010111011111010010"
  4896. "111111111111111111111111"
  4897. },
  4898. /*176*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'\001\002\003\004\005\006...............\015\015\015\015\015\015\015\015abcdefghijklmnopqrstuvwxyz\015\015\015\015\015\015\015\015...............\001\002\003\004\005\006ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^...............", -1, 0, 132, 132, 0, "Mixed modes (except B256); BWIPP different encodation", 0,
  4899. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4900. "101001101001010011000111100011111001011001011010011010010111111101110111100110110110000111110000111000011100111110111010111110010101"
  4901. "101100101010110110010011000010100000111010101111010100001111001010100011010100110101000010101011010001111011001010111111011000100110"
  4902. "100110010000100111011110100001010100101110111101000100110001000011101111111010010111110110001000111010011010111111011011000000110111"
  4903. "101010011110000110101010001010010010000101101101000011010001111110111011001010001100111011101001110100000111101100001000011111100100"
  4904. "100001101000001110110111000000101011010001011111111010111100100001111100100100110101001110111110100101000000011111100111011010010111"
  4905. "110000101111011110011010000001101111000100001110000111001100111010101010100011100111001011010111010100000100001100110101011111001100"
  4906. "111101011101000110000110111101011100101010111111000001010100011101100000011010110101000111010110110101101110111000001001011011101001"
  4907. "111100100111111111101010110000000110111100101100001001100110011110110100000111100001110010000010011001110010001110110000111110010010"
  4908. "110110011010110000100110010000000010111110111101101100111000110011100111000010011110011111111000101101010110111110010011111100000001"
  4909. "101111110100111101111010011100110111001000001001111000111011010010101110001111001110100011001010111010011001101001101101110000100110"
  4910. "101011101110100100000110101100100010010010111101100110111001010001110101101011110000101110000000101111000101111101101011110110101101"
  4911. "101011000011010111011011110110000100101101101011110111101000011000111001111110101011000011111100101110001011101100011101100100101010"
  4912. "110110000001101101000111110100001000100010111110111110111011100111101101111100001001101111001010101001000010111100001100110111111011"
  4913. "100010110001001100001011011111001110100010101111110111010011100100111001110111101000011010000100111101110000101000100001101111000110"
  4914. "101110110111001001001110011110111011101010111111111101011011100011101101110010111001010111110000101110101011011110011010110000011111"
  4915. "111101111011011010001011011100111101010001101101001100011111110010101001110011010010000011001111111010101110001111010010010001110110"
  4916. "111111101001100101100111111011000101000001111101100111111001001011100011010001010000000110011111110101101011011100101010111100011001"
  4917. "101101101101010111011011010000110000111001101110101011011010110010101100011100011110011010100111010001110110101011010011001100111100"
  4918. "101101111111010111111110000001011001110011111100011111111111000011100111100111101010111110000111011001101011111001100001000010111111"
  4919. "101100010101001011001011011110100010101100101010001100000100111010100011101000100010110010100110111001001010001111111001100110100000"
  4920. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4921. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4922. "111111000101011100010110011100111000100010111110110110010001111111111100001101011110111110001100101110101011011001111100110001001101"
  4923. "111101101010101010000011111011010010100111101111111011000010110100101010110100111101111010110010011011001111001000111001100010000110"
  4924. "110101100101000001100111011000111011111001011001110000111000010101100010010110000110101110001011111000001011111000100111001011001111"
  4925. "100100011111110111111011101001111101000011101010100110110011000110111010001101000111101010001100000110000011001011110011110111101100"
  4926. "111011100100101000110110111110100100000001111010110010111001110011101111001011110110111111011101000111101001111010101101000001001001"
  4927. "100110001100010000111011010111110001111001101111110111111110010010110100101100100011010010001000000110111000101111100001001011010010"
  4928. "111001010100010110110111010110011101100001111001100110101011010001110010110101111001000110000001101010100110111111011101110110111101"
  4929. "111011000101010111110010000011100101100100001010000111011110011100100011100111001100010010000111010111000001101101101100000000000010"
  4930. "100111111011011110011111111010100101000000011000010110011111100111110111110010000110110110010001110110010101111000001011111101000011"
  4931. "101110111001110110100011000111100010010111101111000011001011101000100011100001111001010011000111100100001001101011101101011000010110"
  4932. "101111000011111100101110000111001100110110111111111010111100001001100010011011101111010111010110111001000011011010000011111000101001"
  4933. "110010101011001011000011110010111011010101101101000100101010110100101111000101111101100010101101101000101100001000110011001101111110"
  4934. "110000000101101001101111101110101000010111111010001011000010001101101010010101101001000110111111100011100110111101111001111110010011"
  4935. "111111110110101000010011001001101000001101001001001011111010010110111110101100101100111010111001100010100101101010100011101100111000"
  4936. "101000111100111001011110110000111100111001111011100100101111110111111100001011100110010110101111001011101011111100001001001010100101"
  4937. "101000001011010010001010100011010011001100001110100100110101010110110111010011011000010011001110111101001001001111010101100110001100"
  4938. "100110101101010000100111011001011010010001011100010100010010010111111010101111110100011110111111110101010100111101001011010011001101"
  4939. "100101111100011110100010011100000110000010001100000111000011100110101000101011100101010010110101110001111101001010000101101101011000"
  4940. "100110010111101000001111010111000001110000011111111001111001001101110110011100001111110110010011011001101001111101000001010011111101"
  4941. "111000111000100100011010111000000111111110101110111010010110110100101010001000011101100010111111100101010001101110010011101000111100"
  4942. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4943. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4944. "100000101101010110101111101101101001101001011111000011111110010111100001000011010001110111001010110000110011011101110111001001110011"
  4945. "111101111100101110100011111001010000101001101010101100111010001100110001111100011001111011010111101000111100001000000111001010101000"
  4946. "111001110110010010100111101101010101010111011000100111001111001001111100100101011001111111100111100100111111111011100010100111100101"
  4947. "111100101110011100110010111001010100100101101110100010110100101010111100100111000111110011110011111011101011101111101101001000000100"
  4948. "111011001001110000101110101111010110100100111011110000010010110101110100001110111001001111101010011000000000011010000000001001111101"
  4949. "110010101001001101001010101001101111110100101101011111000011100110100101111001010001110011001100001011110110101011101010011010100000"
  4950. "101010111000011110101110100011001001010100011101001001110111011011111000010110100100101110111011111100100111111010010011000010111111"
  4951. "101011111100100010110010101010101010100111001001001110000010010010110000101101001101001010100111100100111000001001000000101001000110"
  4952. "110111010110001001000110000010111111111001111101001010000010011011110101101011111110100110010001000011110000111101101001110001001101"
  4953. "100010101100101000111011110011000100111110001001011111001111011110101001100011110110100011100101000110010101101101111000010111010000"
  4954. "100011101110000001110110110111010111001010111110011011000101111001110010001001001100010111101010110100110101111001010111110000101001"
  4955. "100001011101000010100010000011000010011110101111001101101011010100111111010101110100001011000011100001001010101111000010000101101100"
  4956. "100101101001111000011110000000110000011110111110111101111111110101111011111100100110011111000111011001111001111001001110100011001101"
  4957. "110001111011110000010011000110111111001111001100110100010100010010111101101101101110011010001011100011111000101000000100111011011010"
  4958. "101101100100111000001111000011001010111110111010100101010110010111111011111110010010010111001110110011100110111111110100110100100001"
  4959. "101000100111111001110011110111000100110100101010111100011010101100110010110110011110001011100101111101011011101001100111101010001110"
  4960. "111110011110101011110111100101001011111110011110010011110001011111111011001101111001101111000000111000000011011101101111011110010111"
  4961. "110010010111001011011010000001001011001010001101011010100111110000100011111001001111110011101111001000001010001001101101001010110010"
  4962. "100010010110111010010110001110100101100001111111001010111001011011101110101000101000000110011000000101111001011100101010100010001011"
  4963. "111111000011110011111011001110100110010000101111011111100011100100110110111100000110001011011001111011110010101101100101110001011000"
  4964. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4965. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4966. "110101111000011001111111101100011100011111011010011001010111000001100000010101000111001111111100111111101111011011011011001111100011"
  4967. "101011000100010101110011110100001010111010101000000010110010010000100110101101110110000010011100000101110011001010110000010011000010"
  4968. "111010001111111111111111100110101101010000011000000001101011111001111011100101110111000111000100001111111110111000010110101101001111"
  4969. "110001110010111101010011101111111001111111101101111011111101100000110001001010001101100011100101111101000011001100100100010000010000"
  4970. "111011010111001001111111010110010111001011111101100011100111111111100100111100101100101110111011011010010101111111111110110111010001"
  4971. "100110011010001101001010011000100101000111001101101100000011011110110001110000101001001011100001100011001101101100101111011001111000"
  4972. "110111010000010101100111100000100101001110011101100000001010011001101111111001011000011111101110111111011010111000011100100011000001"
  4973. "101110011110000110100011011111110001010100001010100111000000000110101101100001111100001011010101001110010001001100101000001010100010"
  4974. "101001001001111100100111011001001110111100111111110110000000010011101000110001110100111111011101110010111110011001101000100101111001"
  4975. "111101000111101011110011011010101111011011101101010100010000110110101001110101011100010011111001111100110101001001010001000001100110"
  4976. "101101001000101101000111011111101111011010011100010100000000100101101000110001101100011110101111011101111110111110111100001010010011"
  4977. "111001010001111010100010000101111000000111001000000001100010000110111110101000101110100010101110110010101000101000001101011110001010"
  4978. "101110010110011111001111010111100111000001111100110000000100000011111001101000000010001111011011100111001010011100110111000000110001"
  4979. "101101010000000100111011000101110100001110001011001000001111010000110111111010101100101011101011111000000110101001010101000010011110"
  4980. "101111000000010110100110111111001101101011111010000110001111010111111010100111010001011110101010100010000000011111001111111101001111"
  4981. "111001111111000001011010110010110001011110001100101101011100010000110100000110001001011010110010101001101111101011000100001000011110"
  4982. "100011011000110000001111011010001101011100011000001110111111100101111100110111010101001111000010001111010000111001011101111011010111"
  4983. "101011010110100011011011101001111011001000001011011101010110100100100111010101000011110010011001001110010101001100001100010110010110"
  4984. "100001010011011010011111001100101110110110011001101111101110101001110100101101001001100110110001000100110110011110001100111101011001"
  4985. "110000110110011000001010111100100100100111101111111101110000000110100100001000101100100010111100011101011001001100001001110100010010"
  4986. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  4987. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  4988. "110011100011010000101111101010101010110111011111101101100011110111110111111101010001001111100100011010100010111111010101111111000001"
  4989. "101110000110111101110010001100001011101000001101100000011111110010111110000000100001010010111111101101100011001010100100010011110110"
  4990. "101000001011111110011110100000100010111111111111011000010100000011110000001001110000010110101110100110110001011011101001111010000111"
  4991. "111111001001110000101011111110100010110101001011010110011010011010101101001011110101010010010010001100011000001011000000001000011000"
  4992. "101110101011100000101110011100001010101101111000110011101010100011110010110100000000011110000010100111100111111101111010011101111001"
  4993. "111101001101011101110010000100010010011110101011001100100110001010101001110010001000000010100110111111111010001011000101010100001100"
  4994. "111100001001011001111111110110000010111100111000010000011010100111101100100111011110111110000010101100100101111100101100100001111111"
  4995. "110011001101011001010010101111101011001010001110001010001110100110111101010100100011111011011101100110010001001011011010000000101000"
  4996. "100111010001011110111110010001111110101111011011100110101111101011110110000100111101001110111110011010111111011001000010011111111001"
  4997. "101010000000011011111010011001110101111111001101000100000101010000110000010010000000110010011000110111000111001011111001000101110100"
  4998. "100001110011111011100111111010101110011011111110110101010101110111100011100001000101110110001000100000000110011011001100110101000111"
  4999. "100111101110011111100011010110011000000010101011001101110010011010100101010100101010101010000010111001000000101110010011010001111100"
  5000. "101001101011101100100110011110100000101011111100000110100001101001110110110000111100000111110000011010110001011111010110011110000111"
  5001. "110000010011100011110011111011011110111000001111101101111111001110110110100011010010000010100010000010011000001001001000001001100000"
  5002. "110100001110000001010111101111011010110001011111000011110000111001101000111110100001110110110000111001011010111101010001000110010001"
  5003. "110000001101011010101011110101010111010111101100000011010011110010111011001001011010111011110010010010101000001010001000010100000100"
  5004. "110110000000101110111111101001010110001011011110000100000101000111111101100000110110100111010100101101101001011011011110101110000001"
  5005. "100110001101000100111010011000100100101010001101101100010101100010110011001001001110010010100110111101100110101000110001101100010100"
  5006. "110111001001010100101110110011111011000010111001101010111111100011101111100011011011000110001001100011000110011000111011001111100011"
  5007. "100111111111000101101011001101101111001000101001100110111100011110101100000101010110000011111110010000101000101011111011011100010110"
  5008. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5009. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5010. "110110110100100110111111101011111100100100111100011011000110010011100001101011001011001110011001100111011011011100011001101001111011"
  5011. "111111110110110111010010011101010010011111101101101111111001100110111001101100111000100010001111101100100010101111001001101111110100"
  5012. "100001010011111110110110001010110111100100011110110001001011100011100000100001011001011110011101111011001010011001011110011010110111"
  5013. "100100110111011001100010100110010100110001001010000101110011010100100111100111000000010010100110101111001111101111000101000010011100"
  5014. "101010100100010111011110101101110101011011011101101110111100011101110100111111110000001111101110001111010011011011100011111111010001"
  5015. "111110000110111110011010110111110000010000001101010001011101111010111100100101000000101010011010111011010000101100100000000011101000"
  5016. "111100010110101011011111100000100111110010011111111011011101001111111001011011010001100110000001101101111100111001011100111000100011"
  5017. "101111010000110110110011010001110110100000101100001101010101111100101000100010101110011011101111111101100010001101100101100100111100"
  5018. "111111101100001011101111001011101111011100011110010010000000011101101011011000010011111110011011001010001111111101100101010101101001"
  5019. "111100010000001010011010010010110000110000001001101011010010011000100110111010111100010010000000011010110111101111001111001001001000"
  5020. "111101100000101010110110110101100111011010111010111011100111101101100010010111110110000111010100110010001110011001010110110001001111"
  5021. "110011000011001011000010101010011110110111101110111011010010001000111001011110011111100010101110101000000111101110001011111111000000"
  5022. "111010000000001110100111101000100010101011111101111100010111111111101100011111001110000111000010011000011111111010011111111101101011"
  5023. "111000000010110101110011011110010110101111101001100000100100001000110000100000110101011010000001101100001011001011010110110000000100"
  5024. "100000000111101101000110010100100101001100111010110011110101111001110011110100110111010111101110001001000111111111111100000111110011"
  5025. "111100100010011101110011001111010111010111001110000111000111110010111100000010100111010010011111010101110011101001001000011000100110"
  5026. "111111101010111110011110010111100101010001011011011100011100001001110010011011100000000110110001000110101010111011000001000001100011"
  5027. "101101011011010101000010001000010010011111001010101011100011100010100111011101100101110010011100001110011111101110011100011010110000"
  5028. "101111111111101110100111110101011100010000011000010101010001111111110011101101001001001110111101011001111010011010100011101010111001"
  5029. "110101010100010111111010100000000000110011101101010011010100111010111011101111011111110010101110001010101110001010111111010011111110"
  5030. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5031. },
  5032. /*177*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^;<>@[]_`~!||()?{}'\001\002\003\004\005\006...............\015\015\015\015\015\015\015\015abcdefghijklmnopqrstuvwxyz\015\015\015\015\015\015\015\015...............\001\002\003\004\005\006ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^...............", -1, 0, 120, 120, 0, "Mixed modes (except B256); BWIPP uses different encodation", 13,
  5033. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5034. "101001101001010011011001100011111001011110010010011011010111111101001110101111111010000001101101101110110111111011101011"
  5035. "101100101010110110001101000010100000111010101111010101000000110001110101001100101001111100111000101011100101101011001100"
  5036. "100110010000100111011110100001010100101111101101000101100101111110010011101101111011110110111011011111100100110111001001"
  5037. "101010011110000110101010001010010010000011011101000011110000101111000000101100001110011000111110001011110000100011011000"
  5038. "100001101000001110111101000000101011010110010111110010001111101101100000001001011101110101000000000111011110101001101111"
  5039. "110000101111011110001110000001101111000011000110001001101000101010101100101010101111010111101100101010110011111101011010"
  5040. "111101011101000110011000111101011100101110101110101100110101110111101111010000111111011101101100111110100000011111111111"
  5041. "111100100111111111101010110000000110111011001100111101110110100011011000111110101100111001110100010010011110110100000100"
  5042. "110110011010110000111000010000000010111111101101111001011111101111111001101001111100010001110101011110110111000101010111"
  5043. "101111110100111101101110011100110111001010000000100000111110111011010000101000101000100111011100000011110111101000010000"
  5044. "101011101110100100011000101100100010010110100000000110010001111011101101011011111011011010010010010111101101100001011001"
  5045. "101011000011010111001111110110000100101011010011110111111010100010100100111110101110001011011010100010111100000110111110"
  5046. "110110000001101101011001110100001000100110110011010110011101110111010110000110111110111001001100000111111011010100100101"
  5047. "100010110001001100001011011111001110100011011001101110011100111001101111101000101111110011011111010011100101000010101010"
  5048. "101110110111001001011010011111011111111111010111111000110111111001001001110101011001111010011010000111011001001011111101"
  5049. "111101111011011010001011011101101101010011111101101011001110111110101101110111101011111000001001000010111000101100010010"
  5050. "111111101001100101111001111001110100100111111100111001100101100010111011011101111011100001010110011110100001011101000011"
  5051. "101101101101010111001101010000110000111010110000101001111110110011001110111001101011111101001011011010001110001100000110"
  5052. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5053. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5054. "101101111111010111111111100001011110010111111110111101101001110111011100010001111000110101101111100110100000000010011011"
  5055. "101100010101001011101101111110100100100010110011010011110100100001011000100111001110011011010111111010000100011010011110"
  5056. "111111000101011100111001011000101110101110100001011110011001100000011011011001011101110010111011100111001100001001101101"
  5057. "111101101010101001101101111011011111111010011100011000010100100100001110001011101111001011001011100011010111011001100000"
  5058. "110101100101000001111011111000101100011110110111001101101101101001101110111101111110101111011000001111110110000110111111"
  5059. "100100011111111100101101101001111110100011101000001110110110101100001111101110101100111011010100011011011000000111010000"
  5060. "111011100100101011111011111110100110010111000111101011110111111101010001101001111101110010010111001110010000011010110101"
  5061. "100110001100010011101011010111110110101010010100011011010100111101111011001000101000001010111100001011111100011001110110"
  5062. "111001010100101010011001010110101100000110001000011010011111110111011110101010011000110111010101100111111001101011111011"
  5063. "111011000100101011101100000000111111100011100111000011110010101110011000111111001010001011100111010011110001101101011000"
  5064. "100111111010011010011111111001111010011111101111111001110101100100010110000011011010011010001101111111100110111100110001"
  5065. "101110111010011110101001000101101010001010011111010010110000101001110011101101001100010001111011010011000111010111110010"
  5066. "101111000001011000111010000001010110100111011001111000111011110111011101111101111011101000011111111110011010110010100101"
  5067. "110010010000001011001001010001001111101010011101110010101110100011101101110110101000000000101011011010011001110111010010"
  5068. "110000011111101001111011100101100001000110011011101101101111101010111010100111011101100101011111001111101011111011110011"
  5069. "111110111100101000001110110011111011111011001011100010001110111101001110111001101100101001011000011011101101010010011110"
  5070. "101001001000111001011111110010011110101110111000100101010001110100011110011001011111010110110110101111111100111111000001"
  5071. "101001100111010010001101101011011010010010110101000101111010110001011100111111101001011100110101111011010111000000010010"
  5072. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5073. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5074. "100111101101010000111110101110110101101110010110110111011001100000011110000010111101011101001110101110110010001001011111"
  5075. "100100011100011111001010110011110000101010111010001111011110100100011111110101001100111110110111100011110100101110011100"
  5076. "100001010111101011011101110111011010011111011101000110110001111000111010010100011101001010010110101111111010101000110101"
  5077. "110010111000101011001000010110111010001011100110000011100110101100111101010010101010101001100010110011011101101001100100"
  5078. "110000101101010010011000000100100001101110100110110111110111111110000110000001011010101101111011110110110100101011111101"
  5079. "111101111100001011001001000010010001001011111011010111100100111101000101100111101101111101001101011011101010011000100010"
  5080. "101001110110110011011010001011011110100110011011000011101111100101011100011000011110101010001011001110111010011100100011"
  5081. "101100101110001101101011001110111000111011000001000111110010101111101001100011101100001001100111011011100111011010001110"
  5082. "111011001010011101111111011101010110100111010110010001110111110110111101010110111110111011011111100111101000111000010111"
  5083. "110010100100010101001110001001110011010011011011011110110010110110111010110101101011100100111101000010011011110011010110"
  5084. "101010111010100111111000000111011101110111111110101100111011100110111001111010111010010100001011001110010010110000111111"
  5085. "101011101000111100101100100101100001001011010111000010110010110001111011111001101100100001011111101011110000100001000010"
  5086. "110111110110011100111100100010110111000111111011101101101011111100010010000001111100000001001001010110100111111100111101"
  5087. "100010011100101101001111110101111010001011001000100010001110110111101101011001001111000111110111110011110111011000101000"
  5088. "100010011110001111011101010100101110111111000000100101101101101011100001011111111010000011011000111110010001111000000111"
  5089. "101111111100101101101010110001101011101011001101000100100000110010100100011010101000100011100010100010111110111000110010"
  5090. "100000111011001001111110000001111011001111101110110111011011111011101111111101011100010010101101000111100101011110011101"
  5091. "111100111000101100001101101100000000101011011010011011010000101101011110011100001010110101010110101011101001101100100010"
  5092. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5093. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5094. "100110001001100101011100011111010111011111111100101100100001100100101111110110011000011011010001111111010110110010010001"
  5095. "110101010001001100001001111101011000101011100111011011001110110001110011101100101101011110110110011011011100000100000100"
  5096. "100101101111100011111101100101111001101111100101001001101101111110101111001000011111111011100110101110000010001010110101"
  5097. "101110100111011011101001110011010000001011111100100111011110100111001100101111101101100100101100010010111011010101100110"
  5098. "110111001110001011111001110001101101010110000000110111111011110110000010111001011001111000000000100111100010111100010011"
  5099. "111001101111011111101100100010100101111011011011110011011110100010001011011101101000101111111111010011100100001010000100"
  5100. "101001100010010001111011101111010111100111000110111011011111111011010111011101111001000110011001111111011110111011110011"
  5101. "111111011000011101001010111001101111010010010000100011001100100111100011001100101010100101110110000011100100001001000100"
  5102. "100001010000101110111110111001100101111111011011010110101001100110000010111011111111100000010111100111110001011110100111"
  5103. "110011111101000010101000111111110001011010101111010100100100111111000100100101101010000000100101101010100111111010110010"
  5104. "111101110011101001011101000101100110111110101101111011101111100011001011011001011100100001111101011111010011100000110011"
  5105. "101110011000101001001111110011111011110011110011001010010100100101001010111000001000010111000010111010110011000000111110"
  5106. "101001100000000101111110011110101100010111111001100001011001111101100110100011011000101011000110010111100011101110001101"
  5107. "101111001101000011101101011001101111100011011110100010010010110110100110100000101110101101010001011011000101000110100010"
  5108. "101111101101111001011111001101101011111111011000010000111011100100011000110100111010111111111000110110000010111001001001"
  5109. "101101011011111100001100001100010001101010110100011100111010110100011111101001001111100011001000101010111001000111011010"
  5110. "111111110101011001111111101110111011111111100111101010011001110110111000110100011100010111010111101111111110110110000111"
  5111. "101011100110111110101100111100001001111010101110100101010110101110110111111000101101101011000110100010000010011010010100"
  5112. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5113. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5114. "111011011111101010111000100000001111001111010101011110011101110110000110110110111101001111011001100111110101100111101011"
  5115. "100010010110011010001101110011001110001010011100011010011000111101111011000011101000111001111111011011000010001101110010"
  5116. "110110010011011110111101111011111111100111110110111001100111100101010110111100011100000011001101010111001100001000001001"
  5117. "111111000011000001101100110100110100100011001100101001100100101111111101101000001101001000101110001010011111111101110100"
  5118. "110101111011100101111011111100001000100111001010100110100111110101110000111010011011011010110110011110000001011000000011"
  5119. "101011001111001001001010111000100111110010100000100111110010111110010001110101101111011110011100100011011001001111000110"
  5120. "111010001001000010111110111101101101001110111010011001011011101010011100000001111010000101111010011110101100100011001101"
  5121. "110001011101110010101000011110011010101011010100011010110000101000001011100000001010000111101101001010101110010111001100"
  5122. "111011011110101001011101011001011111011111000001101111101011100010101011100001111001011010011100011111000011110010010111"
  5123. "100111001010101001001101111010000100000011000001000100001100100101111011101110101001101110110001011010101111000001100010"
  5124. "110110110101000101111110010000010000001111100110010101100111101001001101101001111000100011011101101110111000110011010011"
  5125. "100100110001000011001100011111000100011010000111000100011010110011111100011100101000100101111010110010100111001010111000"
  5126. "101011011001111001111001101000101100111110011000110111011011110101001001000010111110000111100101010111101111111010010111"
  5127. "101010111011111101001010100110110100110010010110111000110000110110010000100010101001000101001101101010011110000000101000"
  5128. "100100100101011011111101010011110110100111100010101100100101110110110010011100111100100000011110000110111000000011101001"
  5129. "100010100110110011101100110111010000000011110111010011101110111001100000010111001110101011000100000010101111001001100010"
  5130. "101011011111101001011110100010010001011110100101000011001001101001010100111110111000000110011010100111110000000100000001"
  5131. "101110010110010100101110000011000100111010000100010100001110111111011010111101001001001111100010001011010011101100010000"
  5132. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5133. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5134. "111110010011111100111000011001000111110110000000000001110101111001001011110101011111111110100100010111010000100001010011"
  5135. "101111000001101010101111010100011101111011011011111001111110111011101101010010101100000011100100110011011000010110101010"
  5136. "100101111011101011111111011100010011110111000111011100101011110100011100110110011110011100011101100110110100011100100111"
  5137. "101011000010101101101100110010011110011010010010100101111110111001101101000111101100110011100101001011000010110011110010"
  5138. "111010001011011111111111110001001001111111011000100010100001101111100111101011011000101110110100100110101010001110101101"
  5139. "110001000010000101001010001011011111011010001011000010100100110110111000000100101011010010110000100010000000010111110000"
  5140. "111011101000001111011111000111101110111110100000110110111011111001110010101111111010001011001100111111001100011011110001"
  5141. "100101010100000111001100110101101101110011000111111101001110100100000011011100001100011000100111111010001001111100111010"
  5142. "110100001100100110111100010011011100010111011010110000011111111000010011100111111101011001010000010111001011110101010111"
  5143. "100100010100111100101111111110001111110010101010100000101100110000101001000001101000100101101011110010001000010111101100"
  5144. "101111110110111101111101001010101011111110100011101000010001111011111101010101011100100101111010111110001100001010001001"
  5145. "111001011110111110001001011111110000011011101010011000010100111010101000001010101110001001101101000010100011011010011010"
  5146. "111010011101001011111111100000111000010111011100111100101001101100111100001110011010100100111101101111011110101000010001"
  5147. "110011110000101101001101111010001110110010000001111001111100110101011111011100101101011011000011010010001011010000000010"
  5148. "111001101010101011011011011000000000110111011110100100111011110111110111101000011110100011010010100111110011000110100001"
  5149. "110000010101100111101111011011001101110010001010011010000000111001011110011110001111010000010000101010010111110110100000"
  5150. "111011111110101110111010100011001101100111110010011001001011111110111101011101011010010111111011000110110100001011011011"
  5151. "100101110101110001001111111010101000000010110011011101000010101010011100100101101101011100100110001010000010100000111110"
  5152. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5153. },
  5154. /*178*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, -1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 144, 144, 1, "144 x 144 default (de facto) format", 0,
  5155. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5156. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111"
  5157. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110"
  5158. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111"
  5159. "100111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111010"
  5160. "100111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111"
  5161. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110"
  5162. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011111"
  5163. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001100"
  5164. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110111"
  5165. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110"
  5166. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111"
  5167. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110"
  5168. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111"
  5169. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010"
  5170. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111011"
  5171. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111010"
  5172. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101001"
  5173. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100"
  5174. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101"
  5175. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000"
  5176. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111"
  5177. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110"
  5178. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5179. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5180. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011101"
  5181. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001110"
  5182. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110111"
  5183. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110"
  5184. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111"
  5185. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110"
  5186. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111"
  5187. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010"
  5188. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011"
  5189. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111010"
  5190. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101110001"
  5191. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000100000"
  5192. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001011011111111110001011011111111100001"
  5193. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111110001011011110111110001011011110011000"
  5194. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111111110001011011111111110001011100001101"
  5195. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110110111111110001010110111111110001111111110"
  5196. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100010110111111110001110110111111100011100101"
  5197. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111100010110111111110100010110111111111100110"
  5198. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111111100010110111111111100010110011001000111"
  5199. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101101111111100010110110111111100011101101101110"
  5200. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100101101111111100010111101111111001011000101011"
  5201. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110111000101101111111100010101101111111111000110110"
  5202. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5203. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5204. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111111111000101101111111101100101100110010111100111"
  5205. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101100111111111000101101111110111000111011011010001100"
  5206. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000101111011111111000101101111111110010110010001011011"
  5207. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111000101011011111111000101100111111111110001001010010"
  5208. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111110001011011111111000101111001100101110101110001"
  5209. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110111110001011011111111000101110000110000011010100"
  5210. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011011111111110001011011111111101101001111000111110001"
  5211. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001010110111111110001011011110110011101100110100101000"
  5212. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110001110110111111110001011011111100010010111011001001"
  5213. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110100010110111111110001100111010010111011000110010"
  5214. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111111100010110111111110101100101011111111010101101"
  5215. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110111111100010110111100010101010010010001001111110"
  5216. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111101111111100010111100101111101101110110011010111"
  5217. "111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010101101111111100011011100101101001000001101101010"
  5218. "111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111101100101101111111001110111110111011110101101101011"
  5219. "111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111110111000101101111110111100100111001010010111101110"
  5220. "111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101111111111000101100011010101111000001100101101011101"
  5221. "111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100111111111000101111010100111110000011111010101010"
  5222. "111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101111011111110001001110111111001001011011010010011"
  5223. "101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000101011011111101111000110110010010101111001010010"
  5224. "101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111110001011000110100011001100000011010110101000001"
  5225. "101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110111110001011110101101110100011111111110011011000"
  5226. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5227. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5228. "100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011011111111100010011001111001100111110000100000110001"
  5229. "110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001010110111111011110010110010110001011011000001000100"
  5230. "110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110001110110001101011110000001111010110101000001101001"
  5231. "100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110100010111101010011100110110011101001000110001100"
  5232. "111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111111010100011110010011111100001111011001100110101"
  5233. "111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110111101101101010000101110100010010001001001100110"
  5234. "110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111101000011000010101111111111110101110000110011111"
  5235. "111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010100011111100110101100110111001011100000011010010"
  5236. "111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111001100101100111110110010111100111001110111000010011"
  5237. "111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111110110101010001011011100010110000100101010010100010"
  5238. "111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101100101100100010110011111110111111011101000100111100101"
  5239. "111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000110000111011001011111000010000110111001001101100111100"
  5240. "111100011110111101110001111110111101110001111011111101110001011011111111110001011011111110100001110001110001100100000111110011101111100100100011"
  5241. "101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111001110111100001110111101110000101001100001001010100010"
  5242. "101111011100011110111101111100011110111101110001111110111111110001011011111111110001011110110111100101110111111011111011111000010010011001111001"
  5243. "101110001111011110111000101111011110111000111100111110110111111110001010110111111110001100010000110011110110000000010110110010100110110000110100"
  5244. "100111101111011100011111101111011100011110111101111100010110111111110001110110111111101110010001111101000001000001110011111011011111110000000101"
  5245. "110111101110001111011110101110001111011110111000101111100010110111111110100010110111110011111100100011000111011100011000111011111101111000011000"
  5246. "110111000111101111011101100111101111011100011111101111111100010110111111111100010111101101111101111100010010100110101001100110100101101100100011"
  5247. "100011110111101110001110110111101110001111011110101101111111100010110110111111100011000100010110111101000000011000110010101011001010000001100010"
  5248. "111011110111000111101111110111000111101111011101100101101111111100010111101111111011100101101001110100100001100101111011110110000110100001010101"
  5249. "111011100011110111101110100011110111101110001110111000101101111111100010101101111100111111010010110000110110110000011010111111001110100101001110"
  5250. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5251. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5252. "110001111011110111000111111011110111000111101111111111000101101111111101100101111011011000001101111010101000001010000111101011110111001010100111"
  5253. "111101111011100011110110111011100011110111101100111111111000101101111110111000110000000000111100100000000101100100101010110100100100010000010110"
  5254. "111101110001111011110111110001111011110111000101111011111111000101101111111110011011000100010101110001000111000010110111100110011000011001111011"
  5255. "111000111101111011100010111101111011100011111000101011011111111000101100111110000001011000110010111000000000001010111110111011111001110111001110"
  5256. "111110111101110001111011111101110001111011111111110001011011111111000101111101110100000111010101110111101001010001101011110001110010011010101001"
  5257. "111110111000111101111010111000111101111011011110111110001011011111111000101000001010111001010110111111001011111001110100101001000100010110000100"
  5258. "111100011110111101110001111110111101110001011011111111110001011011111111101010000101110011011001111011111110001100100111100110000110010100101011"
  5259. "101111011110111000111100111110111000111110001010110111111110001011011110111100101001001100110000110011001000011100011010111110001101111111110010"
  5260. "101111011100011110111101111100011110111111110001110110111111110001011011100000000100110101010011111000010110111010110001111100010110100010001001"
  5261. "101110001111011110111000101111011110110111111110100010110111111110001000100010101110111101100010110010111000010101001000110000000101110001001100"
  5262. "100111101111011100011111101111011100010110111111111100010110111111110011100001011111110110011011111111101011110001100111101010100100011011110101"
  5263. "110111101110001111011110101110001111100010110110111111100010110111111100100000011100101101000010110010000010111110111110111111011010011101101000"
  5264. "110111000111101111011101100111101111111100010111101111111100010110111101100001000101010100111001100100000110100100100111100001100100010000100011"
  5265. "100011110111101110001110110111101101111111100010101101111111100010110000100011010111011001110010101110100100000110101010110001001011011001101000"
  5266. "111011110111000111101111110111000101101111111101100101101111111100010001110111011001100110111111111010010000100101101001111111100101111010111101"
  5267. "111011100011110111101110100011111000101101111110111000101101111111000000100111101110010000110110100000101100110001011100111011011010100101101110"
  5268. "110001111011110111000111111011111111000101101111111111000101101111000101110001000010001010001111100001011000110011101101110001010001101010101111"
  5269. "111101111011100011110110111011011111111000101100111111111000101100000000100101100010011110110000101001001001000000011000111010101011101010010010"
  5270. "111101110001111011110111110001011011111111000101111011111111000100000111110110100101111010101011100100000111001011001101111001001111001111011011"
  5271. "111000111101111011100010111110001011011111111000101011011111110000001010111010110100000111101000101011001011101111100100110110101001011010010010"
  5272. "111110111101110001111011111111110001011011111111110001011011110000110001110110000010010101000001110110110000111011011001110101011010101011101101"
  5273. "111110111000111101111010110111111110001011011110111110001011000000100100111101000111001000101000110010001111000110000010101010011010100011011000"
  5274. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5275. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5276. "111100011110111101110001110110111111110001011011111111110001010001000111111101111100110000100101100000010010110011111001110111110011101011100011"
  5277. "101111011110111000111110100010110111111110001010110111111101001001101010111010111111000110011010110010110111111001110110101000010110100100100010"
  5278. "101111011100011110111111111100010110111111110001110110111101101110110101111100000111110001000111101001001110110101010101110110101010111101010001"
  5279. "101110001111011110110110111111100010110111111110100010110101101110101000110100101001100011010010100011110001100011011010100110111000110100100000"
  5280. "100111101111011100010111101111111100010110111111111100010010101110111111111011100010011100010001100100110100111010100111101100101010110001110101"
  5281. "110111101110001111100010101101111111100010110110111111101110010101011000101000100011000110000010101101111010011010101000101001011001000010111000"
  5282. "110111000111101111111101100101101111111100010111101111010011110111011101111001111101011010001001110010010101010110010011100000101111010001010011"
  5283. "100011110111101101111110111000101101111111100010101101010011011000010100110010011001011100000010111100001000100010100100110010001101001101001000"
  5284. "111011110111000101101111111111000101101111111101100110001011001111111101111000100101110100000101101100101111100001100111101110101100001111010101"
  5285. "111011100011111000101100111111111000101101111110111001100100110110001000101000110010111010101100111110100111011110011010111100010000101100000110"
  5286. "110001111011111111000101111011111111000101101111111110111110010111000001111111010000101000010011110000010110011101100111100001110101011101111111"
  5287. "111101111011011111111000101011011111111000101100111100110000000101010010100110000001000010100000100100001100001100100100101101010011000000110110"
  5288. "111101110001011011111111110001011011111111000111100010111101111111011001101001000101001000111011111111000101110101010001100111000011110101011111"
  5289. "111000111110001011011110111110001011011111111000111001000101010010001010101100100110100001111000100111010100011100101100111110001011000001001010"
  5290. "111110111111110001011011111111110001011011111111100111100101110001111111100100001010100001100001100111110001101110011011101110110111011011011001"
  5291. "111110110111111110001010110111111110001011011100111000000010010101110010110000010001000000110110111011001101000101001010110110110000001011111010"
  5292. "111100010110111111110001110110111111110001100001100011001111110000001101110001010001001100101101110001011101000100010001110010111101000101101011"
  5293. "101111100010110111111110100010110111111110011100100001011000100111101010101001101000000100000000111101011011001011001100101000110000001010111010"
  5294. "101111111100010110111111111100010110111111101101101001010000000111000101100010101001101000000111111100001011100111011111111101110111011110001001"
  5295. "101101111111100010110110111111100010110111011100100001000101001010110000100100010101011101000100110010001001010010111110110100000011111110110100"
  5296. "100101110111111010010111110111111010010101011111110011101101010001001001110101000000001011101101110110001001000100010001101111001101001010101101"
  5297. "110100111101111011100010111101111011100101110100110011101011110111101110101011110100001110100110110111001110110111011100101110100111011110111000"
  5298. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5299. },
  5300. /*179*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, -1, DM_ISO_144, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 144, 144, 0, "144 x 144 ISO format; BWIPP not implemented yet TODO: implement", 0,
  5301. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5302. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111"
  5303. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110"
  5304. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111"
  5305. "100111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111010"
  5306. "100111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111"
  5307. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110"
  5308. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011111"
  5309. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001100"
  5310. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110111"
  5311. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110"
  5312. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111"
  5313. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110"
  5314. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111"
  5315. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010"
  5316. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111011"
  5317. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111010"
  5318. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101001"
  5319. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100"
  5320. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101"
  5321. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000"
  5322. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111"
  5323. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110"
  5324. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5325. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5326. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011101"
  5327. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001110"
  5328. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110111"
  5329. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110"
  5330. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111"
  5331. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110"
  5332. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111"
  5333. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010"
  5334. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011"
  5335. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111010"
  5336. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101111001"
  5337. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000110000"
  5338. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001111011111101110001011011111111110001011011111111010001"
  5339. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111101100"
  5340. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111101110001111110111111110001011011111111110001011011110101"
  5341. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110111000111100111110110111111110001010110111111110001101110110"
  5342. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100011110111101111100010110111111110001110110111111110100100101"
  5343. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111011110111000101111100010110111111110100010110111100011100110"
  5344. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111011100011111101111111100010110111111111100010111000101000111"
  5345. "111101111011100011110110111011100011110111101110100011110111101110001110110111101110001111011110101101111111100010110110111111100011111101101110"
  5346. "111101110001111011110111110001111011110111000111111011110111000111101111110111000111101111011101100101101111111100010111101111111000111000101011"
  5347. "111000111101111011100010111101111011100011110110111011100011110111101110100011110111101110001110111000101101111111100010101101111111111000110110"
  5348. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5349. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5350. "111110111101110001111011111101110001111011110111110001111011110111000111111011110111000111101111111111000101101111111101100101100110010001100111"
  5351. "111110111000111101111010111000111101111011100010111101111011100011110110111011100011110111101100111111111000101101111110111000111000011011001100"
  5352. "111100011110111101110001111110111101110001111011111101110001111011110111110001111011110111000101111011111111000101101111111110010100101010011011"
  5353. "101111011110111000111100111110111000111101111010111000111101111011100010111101111011100011111000101011011111111000101100111111111110101111010010"
  5354. "101111011100011110111101111100011110111101110001111110111101110001111011111101110001111011111111110001011011111111000101111001100011111011100001"
  5355. "101110001111011110111000101111011110111000111100111110111000111101111010111000111101111011011110111110001011011111111000101110100000101101101100"
  5356. "100111101111011100011111101111011100011110111101111100011110111101110001111110111101110001011011111111110001011011111111100101000000010000011101"
  5357. "110111101110001111011110101110001111011110111000101111011110111000111100111110111000111110001010110111111110001011011110111110000010101001000100"
  5358. "110111000111101111011101100111101111011100011111101111011100011110111101111100011110111111110001110110111111110001011001111001111110010101101101"
  5359. "100011110111101110001110110111101110001111011110101110001111011110111000101111011110110111111110100010110111111110001110101100110000101101110110"
  5360. "111011110111000111101111110111000111101111011101100111101111011100011111101111011100010110111111111100010110111111101101110111110001111100110101"
  5361. "111011100011110111101110100011110111101110001110110111101110001111011110101110001111100010110110111111100010110111110010111101001100101001011110"
  5362. "110001111011110111000111111011110111000111101111110111000111101111011101100111101111111100010111101111111100010110111101110100100000110010110111"
  5363. "111101111011100011110110111011100011110111101110100011110111101110001110110111101101111111100010101101111111100010001100110101111000001111101010"
  5364. "111101110001111011110111110001111011110111000111111011110111000111101111110111000101101111111101100101101111111000010111110111100110101101101011"
  5365. "111000111101111011100010111101111011100011110110111011100011110111101110100011111000101101111110111000101101111111111100100111001010010111100110"
  5366. "111110111101110001111011111101110001111011110111110001111011110111000111111011111111000101101111111111000101111100010101111000001100101101010101"
  5367. "111110111000111101111010111000111101111011100010111101111011100011110110111011011111111000101100111111111000110111010100111110000011111010101100"
  5368. "111100011110111101110001111110111101110001111011111101110001111011110111110001011011111111000101111011111110011101110111111001101011011010010011"
  5369. "101111011110111000111100111110111000111101111010111000111101111011100010111110001011011111111000101011011111101111000110110010100101111000110010"
  5370. "101111011100011110111101111100011110111101110001111110111101110001111011111111110001011011111111110001011000110101011001100011001011010101100001"
  5371. "101110001111011110111000101111011110111000111100111110111000111101111010110111111110001011011110111110001011110101011110100000001110100110111000"
  5372. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5373. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5374. "100111101111011100011111101111011100011110111101111100011110111101110001110110111111110001011011111111100010001101111001110010000110101100110001"
  5375. "110111101110001111011110101110001111011110111000101111011110111000111110100010110111111110001010110111111011110001000010100110001110000101000100"
  5376. "110111000111101111011101100111101111011100011111101111011100011110111111111100010110111111110001110110001100000110010001100110001101111001101001"
  5377. "100011110111101110001110110111101110001111011110101110001111011110110110111111100010110111111110100010111010011011010100101100111101110110001100"
  5378. "111011110111000111101111110111000111101111011101100111101111011100010111101111111100010110111111111000100101111111110011101011101000101100100101"
  5379. "111011100011110111101110100011110111101110001110110111101110001111100010101101111111100010110110111110011011010010000010101110110010010011001110"
  5380. "110001111011110111000111111011110111000111101111110111000111101111111101100101101111111100010111100011010000001110001011110000001110011010111111"
  5381. "111101111011100011110110111011100011110111101110100011110111101101111110111000101101111111100010101101101000101001110000110101011101100000010010"
  5382. "111101110001111011110111110001111011110111000111111011110111000101101111111111000101101111111011101001011100000111100001111111001011000000010011"
  5383. "111000111101111011100010111101111011100011110110111011100011111000101100111111111000101101111100111111110100111011110110100100100010000110101010"
  5384. "111110111101110001111011111101110001111011110111110001111011111111000101111011111111000101110001100110000111011111101111101011110001001111100111"
  5385. "111110111000111101111010111000111101111011100010111101111011011111111000101011011111111000100000110001001111011000000000110111011010011100000010"
  5386. "111100011110111101110001111110111101110001111011111101110001011011111111110001011011111110101001110001110101100100000111110010001101100100010011"
  5387. "101111011110111000111100111110111000111101111010111000111110001011011110111110001011011111111110111100001100111101110000111000011111101011001010"
  5388. "101111011100011110111101111100011110111101110001111110111111110001011011111111110001011000000111100101110111111011111011101010111011111010110001"
  5389. "101110001111011110111000101111011110111000111100111110110111111110001010110111111110001100010000110011110110000000010010110010101101001010100000"
  5390. "100111101111011100011111101111011100011110111101111100010110111111110001110110111111101000010001111101011001000001110001111011011001001010101001"
  5391. "110111101110001111011110101110001111011110111000101111100010110111111110100010110111110011111100100011001111011100000000111011111010111011110100"
  5392. "110111000111101111011101100111101111011100011111101111111100010110111111111100010111101101100101111101111110111110000001100110100110011110001011"
  5393. "100011110111101110001110110111101110001111011110101101111111100010110110111111100011000000010010111101100000000110000010101011001110010101000000"
  5394. "111011110111000111101111110111000111101111011101100101101111111100010111101111111011101100011101110000010100011100011011110110111101100001100101"
  5395. "111011100011110111101110100011110111101110001110111000101101111111100010101101111100100101000010110001100001000000111010111110111111100111011110"
  5396. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5397. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5398. "110001111011110111000111111011110111000111101111111111000101101111111101100101111011011111011101100100111001100100000111101000110111001001100111"
  5399. "111101111011100011110110111011100011110111101100111111111000101101111110111000110011111101110100100001111110101110100110110001100100010001010110"
  5400. "111101110001111011110111110001111011110111000101111011111111000101101111111110111001100010110011100101111001111110110011100111011000011001111011"
  5401. "111000111101111011100010111101111011100011111000101011011111111000101100111111000001001001011010110000100100100110010000110011111001110111001110"
  5402. "111110111101110001111011111101110001111011111111110001011011111111000101111110110000110010011001100010010101000001100011111101110010011000101001"
  5403. "111110111000111101111010111000111101111011011110111110001011011111111000101100001010101011100010100011001011101001101100101001000100010101000100"
  5404. "111100011110111101110001111110111101110001011011111111110001011011111111100110000001001111010001111000111110101111100111100110000110011110101011"
  5405. "101111011110111000111100111110111000111110001010110111111110001011011110100000000110110010110100100000001000101001011010111110011101110001110010"
  5406. "101111011100011110111101111100011110111111110001110110111111110001011011111100000001010101010011111010010000011010110011100100100110101001010001"
  5407. "101110001111011110111000101111011110110111111110100010110111111110001000100000001101011101100110110010111011010001000010101001000101100101111100"
  5408. "100111101111011100011111101111011100010110111111111100010110111111110011100001011101110110011011111111111100000001100001100001111011001111010101"
  5409. "110111101110001111011110101110001111100010110110111111100010110111111100100000011110101101000010110110000110110110111000100010101010100010010100"
  5410. "110111000111101111011101100111101111111100010111101111111100010110111101100001000101010100111001101111111001101100101001100100110110111011001011"
  5411. "100011110111101110001110110111101101111111100010101101111111100010110000100011010111011001110000100000000100110000000000101000100010000101101000"
  5412. "111011110111000111101111110111000101101111111101100101101111111100010001110111011101100110111101111010110000011000110011100101000000100110111101"
  5413. "111011100011110111101110100011111000101101111110111000101101111111000000100111101011010000110000100000101101101110111010100010101010111001101110"
  5414. "110001111011110111000111111011111111000101101111111111000101101111000001110001010101001110001011100001011001000011100001111001000100000110101111"
  5415. "111101111011100011110110111011011111111000101100111111111000101100000010110101110100011100100100101001001001111100111000100010101000011010010010"
  5416. "111101110001111011110111110001011011111111000101111011111111000101010111110110011011101111000011100100001001001010011111111001011110101110010011"
  5417. "111000111101111011100010111110001011011111111000101011011111110000100110101011101011101100011000101011000011011111100110110110100001011011110010"
  5418. "111110111101110001111011111111110001011011111111110001011011110101010011110100100110100011000001110110100000111011010001110101011010101010110101"
  5419. "111110111000111101111010110111111110001011011110111110001011001010001010101010111111100110001000110011001111000110001010101010011011100011010010"
  5420. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5421. "101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010"
  5422. "111100011110111101110001110110111111110001011011111111110001000001110011101111011000101000100101110001000010110011111001110111110010110001000011"
  5423. "101111011110111000111110100010110111111110001010110111111110101100001100111000010111001100001100100010110111111001110110101000011101100100001010"
  5424. "101111011100011110111111111100010110111111110001110110111101001100110111110001100111110000011011101100001110110100010101110110101100111001000001"
  5425. "101110001111011110110110111111100010110111111110100010110101011101111100110101001001100010010100100011110001100010101010100110010100110100101000"
  5426. "100111101111011100010111101111111100010110111111111100011000011100111101111101010010001001110001100100101100111110010111111100011010110001000001"
  5427. "110111101110001111100010101101111111100010110110111111100110010011011000101001110011000111111010101101111110011101111000100111101001000010010000"
  5428. "110111000111101111111101100101101111111100010111101111111011101001011101100001111101010010101001110011101101010101110111101010001111010001000111"
  5429. "100011110111101101111110111000101101111111100010101101110011000000010100110010011000000100000010100000010000110111110110100100101101001111000010"
  5430. "111011110111000101101111111111000101101111111101100110001011110111111101111000100001100100000101111101001101101001101101100000101100001110010101"
  5431. "111011100011111000101100111111111000101101111110111001100100010110001000101010110110011010100000110110011100101010101010101100011000100100000110"
  5432. "110001111011111111000101111011111111000101101111111110111110010111000001111110010101101010010011101101010010110000000001111011111010010001111111"
  5433. "111101111011011111111000101011011111111000101100111100110000000101010010101111010101000000000000101110011011111010110100101011011011010000110110"
  5434. "111101110001011011111111110001011011111111000111100010111101111111011001101011011101000001110101100111011101110000100001101011100011110101011111"
  5435. "111000111110001011011110111110001011011111111000111001000101100010001010111010100110101000010110110001010101101110101100100100110011000001001010"
  5436. "111110111111110001011011111111110001011011111111101111100101110000011101110100001010000110110111110111100100111011011001111111010111011111011001"
  5437. "111110110111111110001010110111111110001011011100101100000001010100101000101000010000100101100100100101001000101001001100111110010000001101111010"
  5438. "111100010110111111110001110110111111110001010011101111011111110110000101110001010110000000111111101001011001010100000111110000111100110111101011"
  5439. "101111100010110111111110100010110111111101010000111001010110101010101110101001101010000000001110100101011101001011011110101100111110010001111010"
  5440. "101111111100010110111111111100010110111101100111111000111100011111000101100010110101101000001001111100001011100110111011100101110110110110100001"
  5441. "101101111111100010110110111111100010110101111010101100110100111110001000100000010001011101001010110010001001100010010110111100101010111001101000"
  5442. "100101110111111010010111110111111010010011000011101011001011000001001001110001000000001011101101110110001001011101000111101111000101011110111101"
  5443. "110100111101111011100010111101111011101111110100110011101001110100001110100011110100001110100110110111001110111111011110101110101111011000111000"
  5444. "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
  5445. },
  5446. };
  5447. const int data_size = ARRAY_SIZE(data);
  5448. int i, length, ret;
  5449. struct zint_symbol *symbol = NULL;
  5450. char escaped[8192];
  5451. char cmp_buf[32768];
  5452. char cmp_msg[1024];
  5453. int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
  5454. int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
  5455. testStartSymbol("test_encode", &symbol);
  5456. for (i = 0; i < data_size; i++) {
  5457. if (testContinue(p_ctx, i)) continue;
  5458. symbol = ZBarcode_Create();
  5459. assert_nonnull(symbol, "Symbol not created\n");
  5460. length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, data[i].eci,
  5461. -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options,
  5462. data[i].data, data[i].length, debug);
  5463. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  5464. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d\n", i, ret, data[i].ret);
  5465. if (p_ctx->generate) {
  5466. printf(" /*%3d*/ { %s, %s, %d, %s, %d, %s, \"%s\", %d, %s, %d, %d, %d, \"%s\", %d,\n",
  5467. i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode), data[i].eci,
  5468. testUtilOutputOptionsName(data[i].output_options),
  5469. data[i].option_2, testUtilOption3Name(data[i].symbology, data[i].option_3),
  5470. testUtilEscape(data[i].data, length, escaped, sizeof(escaped)), data[i].length,
  5471. testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].bwipp_cmp, data[i].comment,
  5472. data[i].expected_diff);
  5473. testUtilModulesPrint(symbol, " ", "\n");
  5474. printf(" },\n");
  5475. } else {
  5476. if (ret < ZINT_ERROR) {
  5477. int width, row;
  5478. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
  5479. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
  5480. ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
  5481. assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d (%s)\n", i, ret, width, row, data[i].data);
  5482. if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
  5483. if (!data[i].bwipp_cmp) {
  5484. if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
  5485. } else {
  5486. ret = testUtilBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, data[i].data, length, NULL, cmp_buf, sizeof(cmp_buf), NULL);
  5487. assert_zero(ret, "i:%d %s testUtilBwipp ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  5488. ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, data[i].expected);
  5489. assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
  5490. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, data[i].expected);
  5491. }
  5492. }
  5493. if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, data[i].data, length, debug)) {
  5494. int cmp_len, ret_len;
  5495. char modules_dump[144 * 144 + 1];
  5496. assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
  5497. ret = testUtilZXingCPP(i, symbol, data[i].data, length, modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
  5498. assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  5499. ret = testUtilZXingCPPCmp(symbol, cmp_msg, cmp_buf, cmp_len, data[i].data, length, NULL /*primary*/, escaped, &ret_len);
  5500. assert_zero(ret, "i:%d %s testUtilZXingCPPCmp %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
  5501. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
  5502. }
  5503. #ifdef ZINT_TEST_ENCODING
  5504. if (i && (data[i].input_mode & 0x07) == (data[i - 1].input_mode & 0x07) && !(data[i].input_mode & FAST_MODE) && (data[i - 1].input_mode & FAST_MODE)
  5505. && data[i].eci == data[i - 1].eci && data[i].option_2 == data[i - 1].option_2
  5506. && data[i].option_3 == data[i - 1].option_3 && data[i].output_options == data[i - 1].output_options
  5507. && strcmp(data[i].data, data[i - 1].data) == 0) {
  5508. unsigned char binary[2][2200];
  5509. int gs1;
  5510. int binlen;
  5511. int binlens[2] = {0};
  5512. assert_equal(data[i].expected_rows * data[i].expected_width <= data[i - 1].expected_rows * data[i - 1].expected_width, 1,
  5513. "i:%d data[i].expected_rows * data[i].expected_width %d > data[i - 1].expected_rows * data[i - 1].expected_width %d\n", i,
  5514. data[i].expected_rows * data[i].expected_width, data[i - 1].expected_rows * data[i - 1].expected_width);
  5515. binlen = 0;
  5516. symbol->input_mode = data[i - 1].input_mode;
  5517. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  5518. ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[0], &binlen);
  5519. assert_zero(ret, "i:%d dm_encode() FAST_MODE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  5520. binlens[0] = binlen;
  5521. binlen = 0;
  5522. symbol->input_mode = data[i].input_mode;
  5523. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  5524. ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[1], &binlen);
  5525. assert_zero(ret, "i:%d dm_encode() minimal ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  5526. binlens[1] = binlen;
  5527. assert_equal(binlens[1] <= binlens[0], 1, "i:%d binlens[1] %d > binlens[0] %d\n", i, binlens[1], binlens[0]);
  5528. assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
  5529. i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
  5530. }
  5531. #endif
  5532. }
  5533. }
  5534. ZBarcode_Delete(symbol);
  5535. }
  5536. testFinish();
  5537. }
  5538. static void test_encode_segs(const testCtx *const p_ctx) {
  5539. int debug = p_ctx->debug;
  5540. struct item {
  5541. int symbology;
  5542. int input_mode;
  5543. int output_options;
  5544. int option_2;
  5545. int option_3;
  5546. struct zint_structapp structapp;
  5547. struct zint_seg segs[3];
  5548. int ret;
  5549. int expected_rows;
  5550. int expected_width;
  5551. int bwipp_cmp;
  5552. char *comment;
  5553. char *expected;
  5554. };
  5555. static const struct item data[] = {
  5556. /* 0*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 7 }, { TU(""), 0, 0 } }, 0, 14, 14, 1, "ISO 16022:2006 11.6 example",
  5557. "10101010101010"
  5558. "10000100111111"
  5559. "11101100000000"
  5560. "11111010010001"
  5561. "11000110001000"
  5562. "11110110011111"
  5563. "10111101000000"
  5564. "10010010000111"
  5565. "10100110111100"
  5566. "11011111011011"
  5567. "10101001101110"
  5568. "10001001101001"
  5569. "10011111100000"
  5570. "11111111111111"
  5571. },
  5572. /* 1*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("¶"), -1, 0 }, { TU("Ж"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 14, 14, 1, "ISO 16022:2006 11.6 example auto-ECI",
  5573. "10101010101010"
  5574. "10000100111111"
  5575. "11101100000000"
  5576. "11111010010001"
  5577. "11000110001000"
  5578. "11110110011111"
  5579. "10111101000000"
  5580. "10010010000111"
  5581. "10100110111100"
  5582. "11011111011011"
  5583. "10101001101110"
  5584. "10001001101001"
  5585. "10011111100000"
  5586. "11111111111111"
  5587. },
  5588. /* 2*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 7 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, 0, 14, 14, 1, "ISO 16022:2006 11.6 example auto-ECI inverted",
  5589. "10101010101010"
  5590. "10001111001101"
  5591. "10011111110110"
  5592. "10001100000111"
  5593. "10000011111010"
  5594. "11000001100101"
  5595. "11100001111110"
  5596. "10101101000111"
  5597. "11101101001110"
  5598. "11100001000001"
  5599. "11110100111010"
  5600. "10010111100111"
  5601. "10011001010000"
  5602. "11111111111111"
  5603. },
  5604. /* 3*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("Ж"), -1, 0 }, { TU("¶"), -1, 0 }, { TU(""), 0, 0 } }, ZINT_WARN_USES_ECI, 14, 14, 1, "ISO 16022:2006 11.6 example inverted auto-ECI",
  5605. "10101010101010"
  5606. "10001111001101"
  5607. "10011111110110"
  5608. "10001100000111"
  5609. "10000011111010"
  5610. "11000001100101"
  5611. "11100001111110"
  5612. "10101101000111"
  5613. "11101101001110"
  5614. "11100001000001"
  5615. "11110100111010"
  5616. "10010111100111"
  5617. "10011001010000"
  5618. "11111111111111"
  5619. },
  5620. /* 4*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("product:Google Pixel 4a - 128 GB of Storage - Black;price:$439.97"), -1, 3 }, { TU("品名:Google 谷歌 Pixel 4a -128 GB的存储空间-黑色;零售价:¥3149.79"), -1, 29 }, { TU("Produkt:Google Pixel 4a - 128 GB Speicher - Schwarz;Preis:444,90 €"), -1, 17 } }, 0, 52, 52, 0, "AIM ITS/04-023:2022 Annex A example **NOT SAME** example corrupt??; BWIPP different encodation",
  5621. "1010101010101010101010101010101010101010101010101010"
  5622. "1001111110000011100010110111011001110111111001111011"
  5623. "1000000101110101100111011011101110011001111001000100"
  5624. "1100110100101001111110011111001110000110000111101111"
  5625. "1001101110101111110111110010111100011101001000010110"
  5626. "1110110010010101001110011111001001011001010001001001"
  5627. "1011111001110110111110111010011000101100110010000110"
  5628. "1000010111011001010111101110001100011011110011000011"
  5629. "1010010110001000100110010010011001000110001111101100"
  5630. "1011011010010000111001000111010000010101010000010111"
  5631. "1111001000010000010000010011101110011011010011011100"
  5632. "1000110001001000001100000111110000001111010011110111"
  5633. "1100100011001001011000011011010010110010100000101000"
  5634. "1011000000001101110101001110111010000100000100111111"
  5635. "1010001011100101001100110011110011100111001010100000"
  5636. "1010001110111001100001100111100110001111011001011101"
  5637. "1001110101011110011000011010110101111101000110000000"
  5638. "1001010111111011101111111111001000100011111111011001"
  5639. "1100000100000111010100111010110101110011010011100000"
  5640. "1000011000010011111011011110111111100101010110011001"
  5641. "1000001000101000011010100011000110110100000100011100"
  5642. "1000110110011010111111001111101001001001110000000101"
  5643. "1100011111101110000011100010100101111110100101100010"
  5644. "1110100000110111110110010111010101111110111110111001"
  5645. "1101100110011001001101000011110110101011001001101110"
  5646. "1111111111111111111111111111111111111111111111111111"
  5647. "1010101010101010101010101010101010101010101010101010"
  5648. "1010001100010001001111010111111001010101000110010101"
  5649. "1000110000010111111000011011110010101010101000011100"
  5650. "1001110110101100101110010111101010011011011011110111"
  5651. "1010110000000100101010010010111000010101100001001000"
  5652. "1111100001101000011110000111000100111111010100001101"
  5653. "1001110010010010000000010011010110010001101101111110"
  5654. "1011010010011010100000000111110110010101000100100001"
  5655. "1011000111011001111010110010101101100100010010100000"
  5656. "1110100011100110001001101111110010111100010010001101"
  5657. "1111111010100111111010111010000011100111111010111110"
  5658. "1101000000010110010000000110000001010011000001000011"
  5659. "1101100101110111000011111011100101000100110001101000"
  5660. "1011110111000000000110111111000110000011001101110111"
  5661. "1100011000010001101101011011010011100011000010001100"
  5662. "1011001111111111110011100111001000001000101001000111"
  5663. "1011000101011101100001111010011101011000000000100110"
  5664. "1000010011100100111000010110010110010111100010100011"
  5665. "1000010111101101110100000010001110000111110010111000"
  5666. "1010111010111001011110010111000010010001010111101011"
  5667. "1101011010010010011000011010110111000101111000011100"
  5668. "1111111000111101110111011111011110101111100100010011"
  5669. "1100110000000100110000111011100110101110101011011000"
  5670. "1101101101001110001100100111011110110000000010010101"
  5671. "1101011000011011100011100010001001010110110010101110"
  5672. "1111111111111111111111111111111111111111111111111111"
  5673. },
  5674. /* 5*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("price:$439.97"), -1, 3 }, { TU("零售价:¥3149.79"), -1, 29 }, { TU("Preis:444,90 €"), -1, 17 } }, 0, 16, 48, 1, "AIM ITS/04-023:2022 Annex A example price only",
  5675. "101010101010101010101010101010101010101010101010"
  5676. "100001110110010111001111101001001000110101101111"
  5677. "100001011100111101001110111101110011001101011100"
  5678. "110010100011100110010101100101101010001101110111"
  5679. "100101010111111010110010111000011000011000001110"
  5680. "111000011111100110110101110110010001000000001001"
  5681. "111001110100011100001100111010100000001100101100"
  5682. "100100100000111101000111100000111111000101110111"
  5683. "110101111100000101011100100010011101010101001110"
  5684. "100101111010010100101111110011010011011010100001"
  5685. "110001110001010011101100100000100001010111000000"
  5686. "110111110100110011000001110000000100010011100011"
  5687. "100001001001011101011100110101010101100000100010"
  5688. "101000111110011010011101111110111000001110011011"
  5689. "110011100111011000101110100011101100000110010010"
  5690. "111111111111111111111111111111111111111111111111"
  5691. },
  5692. /* 6*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1, -1, { 0, 0, "" }, { { TU("\266"), 1, 0 }, { TU("\266"), 1, 7 }, { TU("\266"), 1, 0 } }, 0, 8, 32, 1, "Standard example + extra seg, data mode",
  5693. "10101010101010101010101010101010"
  5694. "10000100100011111101000010000011"
  5695. "11101100000000101110100001010100"
  5696. "11111011110010011011000100011111"
  5697. "11000111100111101101010111010110"
  5698. "11110110010001111100110110010101"
  5699. "11111110000111001100101011000000"
  5700. "11111111111111111111111111111111"
  5701. },
  5702. /* 7*/ { BARCODE_DATAMATRIX, UNICODE_MODE, -1, -1, -1, { 1, 2, "001001" }, { { TU("A"), -1, 3 }, { TU("B"), -1, 4 }, { TU("C"), -1, 5 } }, 0, 12, 26, 1, "",
  5703. "10101010101010101010101010"
  5704. "10000100011110000011000101"
  5705. "10011100111010100100011000"
  5706. "11111100100100001110011111"
  5707. "11000010000100110011010100"
  5708. "11000000110100010011001001"
  5709. "11100000111111010111000000"
  5710. "10011101101010000100011101"
  5711. "11011000101010010101011000"
  5712. "10000100000010000011010001"
  5713. "10000011000001110111011000"
  5714. "11111111111111111111111111"
  5715. },
  5716. };
  5717. const int data_size = ARRAY_SIZE(data);
  5718. int i, j, seg_count, ret;
  5719. struct zint_symbol *symbol = NULL;
  5720. char escaped[8192];
  5721. char cmp_buf[32768];
  5722. char cmp_msg[1024];
  5723. int do_bwipp = (debug & ZINT_DEBUG_TEST_BWIPP) && testUtilHaveGhostscript(); /* Only do BWIPP test if asked, too slow otherwise */
  5724. int do_zxingcpp = (debug & ZINT_DEBUG_TEST_ZXINGCPP) && testUtilHaveZXingCPPDecoder(); /* Only do ZXing-C++ test if asked, too slow otherwise */
  5725. testStartSymbol("test_encode_segs", &symbol);
  5726. for (i = 0; i < data_size; i++) {
  5727. if (testContinue(p_ctx, i)) continue;
  5728. symbol = ZBarcode_Create();
  5729. assert_nonnull(symbol, "Symbol not created\n");
  5730. testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/,
  5731. -1 /*option_1*/, data[i].option_2, data[i].option_3, data[i].output_options,
  5732. NULL, 0, debug);
  5733. if (data[i].structapp.count) {
  5734. symbol->structapp = data[i].structapp;
  5735. }
  5736. for (j = 0, seg_count = 0; j < 3 && data[i].segs[j].length; j++, seg_count++);
  5737. ret = ZBarcode_Encode_Segs(symbol, data[i].segs, seg_count);
  5738. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode_Segs ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  5739. if (p_ctx->generate) {
  5740. char escaped1[4096];
  5741. char escaped2[4096];
  5742. int length = data[i].segs[0].length == -1 ? (int) ustrlen(data[i].segs[0].source) : data[i].segs[0].length;
  5743. int length1 = data[i].segs[1].length == -1 ? (int) ustrlen(data[i].segs[1].source) : data[i].segs[1].length;
  5744. int length2 = data[i].segs[2].length == -1 ? (int) ustrlen(data[i].segs[2].source) : data[i].segs[2].length;
  5745. printf(" /*%3d*/ { %s, %s, %s, %d, %s, { %d, %d, \"%s\" }, { { TU(\"%s\"), %d, %d }, { TU(\"%s\"), %d, %d }, { TU(\"%s\"), %d, %d } }, %s, %d, %d, %d, \"%s\",\n",
  5746. i, testUtilBarcodeName(data[i].symbology), testUtilInputModeName(data[i].input_mode),
  5747. testUtilOutputOptionsName(data[i].output_options),
  5748. data[i].option_2, testUtilOption3Name(data[i].symbology, data[i].option_3),
  5749. data[i].structapp.index, data[i].structapp.count, data[i].structapp.id,
  5750. testUtilEscape((const char *) data[i].segs[0].source, length, escaped, sizeof(escaped)), data[i].segs[0].length, data[i].segs[0].eci,
  5751. testUtilEscape((const char *) data[i].segs[1].source, length1, escaped1, sizeof(escaped1)), data[i].segs[1].length, data[i].segs[1].eci,
  5752. testUtilEscape((const char *) data[i].segs[2].source, length2, escaped2, sizeof(escaped2)), data[i].segs[2].length, data[i].segs[2].eci,
  5753. testUtilErrorName(data[i].ret), symbol->rows, symbol->width, data[i].bwipp_cmp, data[i].comment);
  5754. testUtilModulesPrint(symbol, " ", "\n");
  5755. printf(" },\n");
  5756. } else {
  5757. if (ret < ZINT_ERROR) {
  5758. int width, row;
  5759. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d\n", i, symbol->rows, data[i].expected_rows);
  5760. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d\n", i, symbol->width, data[i].expected_width);
  5761. ret = testUtilModulesCmp(symbol, data[i].expected, &width, &row);
  5762. assert_zero(ret, "i:%d testUtilModulesCmp ret %d != 0 width %d row %d\n", i, ret, width, row);
  5763. if (do_bwipp && testUtilCanBwipp(i, symbol, -1, data[i].option_2, data[i].option_3, debug)) {
  5764. if (!data[i].bwipp_cmp) {
  5765. if (debug & ZINT_DEBUG_TEST_PRINT) printf("i:%d %s not BWIPP compatible (%s)\n", i, testUtilBarcodeName(symbol->symbology), data[i].comment);
  5766. } else {
  5767. ret = testUtilBwippSegs(i, symbol, -1, data[i].option_2, -1, data[i].segs, seg_count, NULL, cmp_buf, sizeof(cmp_buf));
  5768. assert_zero(ret, "i:%d %s testUtilBwippSegs ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  5769. ret = testUtilBwippCmp(symbol, cmp_msg, cmp_buf, data[i].expected);
  5770. assert_zero(ret, "i:%d %s testUtilBwippCmp %d != 0 %s\n actual: %s\nexpected: %s\n",
  5771. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_buf, data[i].expected);
  5772. }
  5773. }
  5774. if (do_zxingcpp && testUtilCanZXingCPP(i, symbol, (const char *) data[i].segs[0].source, data[i].segs[0].length, debug)) {
  5775. if (data[i].input_mode == DATA_MODE) {
  5776. if (debug & ZINT_DEBUG_TEST_PRINT) {
  5777. printf("i:%d multiple segments in DATA_MODE not currently supported for ZXing-C++ testing (%s)\n",
  5778. i, testUtilBarcodeName(symbol->symbology));
  5779. }
  5780. } else {
  5781. int cmp_len, ret_len;
  5782. char modules_dump[144 * 144 + 1];
  5783. assert_notequal(testUtilModulesDump(symbol, modules_dump, sizeof(modules_dump)), -1, "i:%d testUtilModulesDump == -1\n", i);
  5784. ret = testUtilZXingCPP(i, symbol, (const char *) data[i].segs[0].source, data[i].segs[0].length,
  5785. modules_dump, cmp_buf, sizeof(cmp_buf), &cmp_len);
  5786. assert_zero(ret, "i:%d %s testUtilZXingCPP ret %d != 0\n", i, testUtilBarcodeName(symbol->symbology), ret);
  5787. ret = testUtilZXingCPPCmpSegs(symbol, cmp_msg, cmp_buf, cmp_len, data[i].segs, seg_count,
  5788. NULL /*primary*/, escaped, &ret_len);
  5789. assert_zero(ret, "i:%d %s testUtilZXingCPPCmpSegs %d != 0 %s\n actual: %.*s\nexpected: %.*s\n",
  5790. i, testUtilBarcodeName(symbol->symbology), ret, cmp_msg, cmp_len, cmp_buf, ret_len, escaped);
  5791. }
  5792. }
  5793. }
  5794. }
  5795. ZBarcode_Delete(symbol);
  5796. }
  5797. testFinish();
  5798. }
  5799. #ifdef ZINT_TEST_ENCODING
  5800. static void test_minimalenc(const testCtx *const p_ctx) {
  5801. int debug = p_ctx->debug;
  5802. struct item {
  5803. int symbology;
  5804. int input_mode;
  5805. int output_options;
  5806. int option_2;
  5807. char *data;
  5808. int length;
  5809. int ret;
  5810. int expected_diff; /* Difference between default minimal encodation and ISO encodation (FAST_MODE) */
  5811. char *comment;
  5812. };
  5813. /* s/\/\*[ 0-9]*\*\//\=printf("\/\*%3d*\/", line(".") - line("'<")): */
  5814. static const struct item data[] = {
  5815. /* 0*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A", -1, 0, 0, "ASC" },
  5816. /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA", -1, 0, 0, "ASC" },
  5817. /* 2*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA", -1, 0, 0, "ASC" },
  5818. /* 3*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA", -1, 0, 0, "ASC" },
  5819. /* 4*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA", -1, 0, 0, "ASC" },
  5820. /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA", -1, 0, 0, "" },
  5821. /* 6*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA", -1, 0, 0, "" },
  5822. /* 7*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA", -1, 0, 1, "C40; EEEEEEEE" },
  5823. /* 8*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA", -1, 0, 0, "" },
  5824. /* 9*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA", -1, 0, 0, "" },
  5825. /* 10*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA", -1, 0, 0, "" },
  5826. /* 11*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA", -1, 0, 0, "" },
  5827. /* 12*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA", -1, 0, 0, "" },
  5828. /* 13*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA", -1, 0, 0, "" },
  5829. /* 14*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA", -1, 0, 0, "" },
  5830. /* 15*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAA", -1, 0, 0, "" },
  5831. /* 16*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAAAAA", -1, 0, 0, "" },
  5832. /* 17*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001A", -1, 0, 0, "ASC" },
  5833. /* 18*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AA", -1, 0, 0, "ASC" },
  5834. /* 19*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAA", -1, 0, 0, "ASC" },
  5835. /* 20*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAA", -1, 0, 0, "ASC" },
  5836. /* 21*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAA", -1, 0, 0, "ASC" },
  5837. /* 22*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAA", -1, 0, 0, "" },
  5838. /* 23*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAA", -1, 0, 0, "" },
  5839. /* 24*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAA", -1, 0, 0, "" },
  5840. /* 25*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAA", -1, 0, 2, "C40; ACCCCCCCCC" },
  5841. /* 26*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAA", -1, 0, 0, "" },
  5842. /* 27*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAA", -1, 0, 0, "" },
  5843. /* 28*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAAA", -1, 0, 2, "C40; ACCCCCCCCCCCC" },
  5844. /* 29*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001AAAAAAAAAAAAA", -1, 0, 0, "" },
  5845. /* 30*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001A", -1, 0, 0, "" },
  5846. /* 31*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AA", -1, 0, 0, "" },
  5847. /* 32*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAA", -1, 0, 0, "" },
  5848. /* 33*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAA", -1, 0, 0, "" },
  5849. /* 34*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAA", -1, 0, 0, "" },
  5850. /* 35*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAA", -1, 0, 0, "" },
  5851. /* 36*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAA", -1, 0, 0, "" },
  5852. /* 37*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAA", -1, 0, 1, "C40; AAEEEEEEEE" },
  5853. /* 38*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAA", -1, 0, 0, "" },
  5854. /* 39*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAA", -1, 0, 0, "" },
  5855. /* 40*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAA", -1, 0, 0, "" },
  5856. /* 41*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAAA", -1, 0, 0, "" },
  5857. /* 42*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
  5858. /* 43*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001A", -1, 0, 0, "" },
  5859. /* 44*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AA", -1, 0, 0, "" },
  5860. /* 45*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAA", -1, 0, 0, "" },
  5861. /* 46*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAA", -1, 0, 0, "" },
  5862. /* 47*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAA", -1, 0, 0, "" },
  5863. /* 48*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAA", -1, 0, 0, "" },
  5864. /* 49*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAA", -1, 0, 0, "" },
  5865. /* 50*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAA", -1, 0, 0, "" },
  5866. /* 51*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAA", -1, 0, 2, "C40; AAACCCCCCCCC" },
  5867. /* 52*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
  5868. /* 53*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
  5869. /* 54*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAAA", -1, 0, 2, "C40; AAACCCCCCCCCCCC" },
  5870. /* 55*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
  5871. /* 56*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001A", -1, 0, 0, "" },
  5872. /* 57*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AA", -1, 0, 0, "" },
  5873. /* 58*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAA", -1, 0, 0, "" },
  5874. /* 59*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAA", -1, 0, 0, "" },
  5875. /* 60*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAA", -1, 0, 0, "" },
  5876. /* 61*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAA", -1, 0, 0, "" },
  5877. /* 62*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAA", -1, 0, 0, "" },
  5878. /* 63*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAA", -1, 0, 1, "C40; AAAAEEEEEEEE" },
  5879. /* 64*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAA", -1, 0, 0, "" },
  5880. /* 65*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
  5881. /* 66*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
  5882. /* 67*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAAA", -1, 0, 1, "C40; AAAACCCCCCCCCCCC" },
  5883. /* 68*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
  5884. /* 69*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001A", -1, 0, 0, "" },
  5885. /* 70*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AA", -1, 0, 0, "" },
  5886. /* 71*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAA", -1, 0, 0, "" },
  5887. /* 72*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAA", -1, 0, 0, "" },
  5888. /* 73*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAA", -1, 0, 0, "" },
  5889. /* 74*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAA", -1, 0, 0, "" },
  5890. /* 75*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAA", -1, 0, 0, "" },
  5891. /* 76*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAA", -1, 0, 0, "" },
  5892. /* 77*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAA", -1, 0, 2, "C40; AAAAACCCCCCCCC" },
  5893. /* 78*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAA", -1, 0, 0, "" },
  5894. /* 79*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAA", -1, 0, 0, "" },
  5895. /* 80*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAAA", -1, 0, 1, "C40; AAAAACCCCCCCCCCCC" },
  5896. /* 81*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001AAAAAAAAAAAAA", -1, 0, 0, "" },
  5897. /* 82*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200A", -1, 0, 0, "" },
  5898. /* 83*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AA", -1, 0, 0, "" },
  5899. /* 84*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAA", -1, 0, 0, "" },
  5900. /* 85*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAA", -1, 0, 0, "" },
  5901. /* 86*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAA", -1, 0, 0, "" },
  5902. /* 87*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAA", -1, 0, 0, "" },
  5903. /* 88*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAA", -1, 0, 0, "" },
  5904. /* 89*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAA", -1, 0, 1, "" },
  5905. /* 90*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAA", -1, 0, 0, "" },
  5906. /* 91*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAA", -1, 0, 2, "" },
  5907. /* 92*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAA", -1, 0, 0, "" },
  5908. /* 93*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAAA", -1, 0, 0, "" },
  5909. /* 94*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200AAAAAAAAAAAAA", -1, 0, 2, "" },
  5910. /* 95*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200A", -1, 0, 0, "" },
  5911. /* 96*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AA", -1, 0, 0, "" },
  5912. /* 97*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAA", -1, 0, 0, "" },
  5913. /* 98*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAA", -1, 0, 0, "" },
  5914. /* 99*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAA", -1, 0, 0, "" },
  5915. /*100*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAA", -1, 0, 0, "" },
  5916. /*101*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAA", -1, 0, 0, "" },
  5917. /*102*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAA", -1, 0, 1, "" },
  5918. /*103*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAA", -1, 0, 0, "" },
  5919. /*104*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAA", -1, 0, 0, "" },
  5920. /*105*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAA", -1, 0, 0, "" },
  5921. /*106*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAAA", -1, 0, 0, "" },
  5922. /*107*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200AAAAAAAAAAAAA", -1, 0, 0, "" },
  5923. /*108*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200A", -1, 0, 0, "ASC last 1" },
  5924. /*109*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AA", -1, 0, 0, "ASC 2" },
  5925. /*110*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAA", -1, 0, 0, "ASC 3" },
  5926. /*111*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAA", -1, 0, 0, "ASC 4" },
  5927. /*112*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAA", -1, 0, 0, "ASC 5" },
  5928. /*113*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAA", -1, 0, 0, "C40 6" },
  5929. /*114*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAA", -1, 0, 0, "C40" },
  5930. /*115*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAA", -1, 0, 0, "C40" },
  5931. /*116*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAA", -1, 0, 0, "C40" },
  5932. /*117*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAA", -1, 0, 0, "C40 except last ASC" },
  5933. /*118*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAA", -1, 0, 0, "C40 except last 2 ASC" },
  5934. /*119*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAA", -1, 0, 0, "C40 except last ASC" },
  5935. /*120*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAAA", -1, 0, 0, "C40 except last 2 ASC" },
  5936. /*121*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9", -1, 0, 0, "" },
  5937. /*122*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99", -1, 0, 0, "" },
  5938. /*123*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999", -1, 0, 0, "" },
  5939. /*124*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999", -1, 0, 0, "" },
  5940. /*125*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999", -1, 0, 0, "" },
  5941. /*126*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999", -1, 0, 0, "" },
  5942. /*127*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999", -1, 0, 0, "" },
  5943. /*128*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999", -1, 0, 0, "" },
  5944. /*129*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999", -1, 0, 0, "" },
  5945. /*130*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999", -1, 0, 0, "" },
  5946. /*131*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999", -1, 0, 0, "" },
  5947. /*132*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999", -1, 0, 0, "" },
  5948. /*133*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999", -1, 0, 0, "" },
  5949. /*134*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999", -1, 0, 0, "" },
  5950. /*135*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999", -1, 0, 0, "" },
  5951. /*136*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999", -1, 0, 0, "" },
  5952. /*137*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999", -1, 0, 0, "" },
  5953. /*138*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999", -1, 0, 0, "" },
  5954. /*139*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999", -1, 0, 0, "" },
  5955. /*140*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999", -1, 0, 0, "" },
  5956. /*141*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999999", -1, 0, 0, "" },
  5957. /*142*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999999", -1, 0, 0, "" },
  5958. /*143*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999999", -1, 0, 0, "" },
  5959. /*144*/ { BARCODE_DATAMATRIX, -1, -1, -1, "999999999999999999999999", -1, 0, 0, "" },
  5960. /*145*/ { BARCODE_DATAMATRIX, -1, -1, -1, "9999999999999999999999999", -1, 0, 0, "" },
  5961. /*146*/ { BARCODE_DATAMATRIX, -1, -1, -1, "99999999999999999999999999", -1, 0, 0, "" },
  5962. /*147*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019", -1, 0, 0, "" },
  5963. /*148*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199", -1, 0, 0, "" },
  5964. /*149*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999", -1, 0, 0, "" },
  5965. /*150*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999", -1, 0, 0, "" },
  5966. /*151*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999", -1, 0, 0, "" },
  5967. /*152*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999", -1, 0, 0, "" },
  5968. /*153*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999", -1, 0, 0, "" },
  5969. /*154*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999", -1, 0, 0, "" },
  5970. /*155*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999", -1, 0, 0, "" },
  5971. /*156*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999", -1, 0, 0, "" },
  5972. /*157*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999", -1, 0, 0, "" },
  5973. /*158*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999", -1, 0, 0, "" },
  5974. /*159*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999", -1, 0, 0, "" },
  5975. /*160*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999", -1, 0, 0, "" },
  5976. /*161*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999", -1, 0, 0, "" },
  5977. /*162*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999", -1, 0, 0, "" },
  5978. /*163*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999", -1, 0, 0, "" },
  5979. /*164*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999", -1, 0, 0, "" },
  5980. /*165*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999", -1, 0, 0, "" },
  5981. /*166*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999", -1, 0, 0, "" },
  5982. /*167*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999999", -1, 0, 0, "" },
  5983. /*168*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999999", -1, 0, 0, "" },
  5984. /*169*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999999", -1, 0, 0, "" },
  5985. /*170*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001999999999999999999999999", -1, 0, 0, "" },
  5986. /*171*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\0019999999999999999999999999", -1, 0, 0, "" },
  5987. /*172*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\00199999999999999999999999999", -1, 0, 0, "" },
  5988. /*173*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019", -1, 0, 0, "" },
  5989. /*174*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199", -1, 0, 0, "" },
  5990. /*175*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999", -1, 0, 0, "" },
  5991. /*176*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999", -1, 0, 0, "" },
  5992. /*177*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999", -1, 0, 0, "" },
  5993. /*178*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999", -1, 0, 0, "" },
  5994. /*179*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999", -1, 0, 0, "" },
  5995. /*180*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999", -1, 0, 0, "" },
  5996. /*181*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999", -1, 0, 0, "" },
  5997. /*182*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999", -1, 0, 0, "" },
  5998. /*183*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999", -1, 0, 0, "" },
  5999. /*184*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999", -1, 0, 0, "" },
  6000. /*185*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999", -1, 0, 0, "" },
  6001. /*186*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999", -1, 0, 0, "" },
  6002. /*187*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999", -1, 0, 0, "" },
  6003. /*188*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999", -1, 0, 0, "" },
  6004. /*189*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999", -1, 0, 0, "" },
  6005. /*190*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999", -1, 0, 0, "" },
  6006. /*191*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999", -1, 0, 0, "" },
  6007. /*192*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999", -1, 0, 0, "" },
  6008. /*193*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999999", -1, 0, 0, "" },
  6009. /*194*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999999", -1, 0, 0, "" },
  6010. /*195*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999999", -1, 0, 0, "" },
  6011. /*196*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001999999999999999999999999", -1, 0, 0, "" },
  6012. /*197*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\0019999999999999999999999999", -1, 0, 0, "" },
  6013. /*198*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\00199999999999999999999999999", -1, 0, 0, "" },
  6014. /*199*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019", -1, 0, 0, "" },
  6015. /*200*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199", -1, 0, 0, "" },
  6016. /*201*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999", -1, 0, 0, "" },
  6017. /*202*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999", -1, 0, 0, "" },
  6018. /*203*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999", -1, 0, 0, "" },
  6019. /*204*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999", -1, 0, 0, "" },
  6020. /*205*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999", -1, 0, 0, "" },
  6021. /*206*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999", -1, 0, 0, "" },
  6022. /*207*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999", -1, 0, 0, "" },
  6023. /*208*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999", -1, 0, 0, "" },
  6024. /*209*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999", -1, 0, 0, "" },
  6025. /*210*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999", -1, 0, 0, "" },
  6026. /*211*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999", -1, 0, 0, "" },
  6027. /*212*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999", -1, 0, 0, "" },
  6028. /*213*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999", -1, 0, 0, "" },
  6029. /*214*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999", -1, 0, 0, "" },
  6030. /*215*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999", -1, 0, 0, "" },
  6031. /*216*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999", -1, 0, 0, "" },
  6032. /*217*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999", -1, 0, 0, "" },
  6033. /*218*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999", -1, 0, 0, "" },
  6034. /*219*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999999", -1, 0, 0, "" },
  6035. /*220*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999999", -1, 0, 0, "" },
  6036. /*221*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999999", -1, 0, 0, "" },
  6037. /*222*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001999999999999999999999999", -1, 0, 0, "" },
  6038. /*223*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\0019999999999999999999999999", -1, 0, 0, "" },
  6039. /*224*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\00199999999999999999999999999", -1, 0, 0, "" },
  6040. /*225*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019", -1, 0, 0, "" },
  6041. /*226*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199", -1, 0, 0, "" },
  6042. /*227*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999", -1, 0, 0, "" },
  6043. /*228*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999", -1, 0, 0, "" },
  6044. /*229*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999", -1, 0, 0, "" },
  6045. /*230*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999", -1, 0, 0, "" },
  6046. /*231*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999", -1, 0, 0, "" },
  6047. /*232*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999", -1, 0, 0, "" },
  6048. /*233*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999", -1, 0, 0, "" },
  6049. /*234*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999", -1, 0, 0, "" },
  6050. /*235*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999", -1, 0, 0, "" },
  6051. /*236*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999", -1, 0, 0, "" },
  6052. /*237*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999", -1, 0, 0, "" },
  6053. /*238*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999", -1, 0, 0, "" },
  6054. /*239*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999", -1, 0, 0, "" },
  6055. /*240*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999", -1, 0, 0, "" },
  6056. /*241*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999", -1, 0, 0, "" },
  6057. /*242*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999", -1, 0, 0, "" },
  6058. /*243*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999", -1, 0, 0, "" },
  6059. /*244*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999", -1, 0, 0, "" },
  6060. /*245*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999999", -1, 0, 0, "" },
  6061. /*246*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999999", -1, 0, 0, "" },
  6062. /*247*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999999", -1, 0, 0, "" },
  6063. /*248*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001999999999999999999999999", -1, 0, 0, "" },
  6064. /*249*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\0019999999999999999999999999", -1, 0, 0, "" },
  6065. /*250*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\00199999999999999999999999999", -1, 0, 0, "" },
  6066. /*251*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019", -1, 0, 0, "" },
  6067. /*252*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199", -1, 0, 0, "" },
  6068. /*253*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999", -1, 0, 0, "" },
  6069. /*254*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999", -1, 0, 0, "" },
  6070. /*255*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999", -1, 0, 0, "" },
  6071. /*256*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999", -1, 0, 0, "" },
  6072. /*257*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999", -1, 0, 0, "" },
  6073. /*258*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999", -1, 0, 0, "" },
  6074. /*259*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999", -1, 0, 0, "" },
  6075. /*260*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999", -1, 0, 0, "" },
  6076. /*261*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999", -1, 0, 0, "" },
  6077. /*262*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999", -1, 0, 0, "" },
  6078. /*263*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999", -1, 0, 0, "" },
  6079. /*264*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999", -1, 0, 0, "" },
  6080. /*265*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999", -1, 0, 0, "" },
  6081. /*266*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999", -1, 0, 0, "" },
  6082. /*267*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999", -1, 0, 0, "" },
  6083. /*268*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999", -1, 0, 0, "" },
  6084. /*269*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999", -1, 0, 0, "" },
  6085. /*270*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999", -1, 0, 0, "" },
  6086. /*271*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999999", -1, 0, 0, "" },
  6087. /*272*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999999", -1, 0, 0, "" },
  6088. /*273*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999999", -1, 0, 0, "" },
  6089. /*274*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001999999999999999999999999", -1, 0, 0, "" },
  6090. /*275*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\0019999999999999999999999999", -1, 0, 0, "" },
  6091. /*276*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\00199999999999999999999999999", -1, 0, 0, "" },
  6092. /*277*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009", -1, 0, 0, "" },
  6093. /*278*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099", -1, 0, 0, "" },
  6094. /*279*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999", -1, 0, 0, "" },
  6095. /*280*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999", -1, 0, 0, "" },
  6096. /*281*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999", -1, 0, 0, "" },
  6097. /*282*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999", -1, 0, 0, "" },
  6098. /*283*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999", -1, 0, 0, "" },
  6099. /*284*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999", -1, 0, 0, "" },
  6100. /*285*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999", -1, 0, 0, "" },
  6101. /*286*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999", -1, 0, 0, "" },
  6102. /*287*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999", -1, 0, 0, "" },
  6103. /*288*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999", -1, 0, 0, "" },
  6104. /*289*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999", -1, 0, 0, "" },
  6105. /*290*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999", -1, 0, 0, "" },
  6106. /*291*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999", -1, 0, 0, "" },
  6107. /*292*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999", -1, 0, 0, "" },
  6108. /*293*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999", -1, 0, 0, "" },
  6109. /*294*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999", -1, 0, 0, "" },
  6110. /*295*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999", -1, 0, 0, "" },
  6111. /*296*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999999", -1, 0, 0, "" },
  6112. /*297*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999999", -1, 0, 0, "" },
  6113. /*298*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999999", -1, 0, 0, "" },
  6114. /*299*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\20099999999999999999999999", -1, 0, 0, "" },
  6115. /*300*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200999999999999999999999999", -1, 0, 0, "" },
  6116. /*301*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\2009999999999999999999999999", -1, 0, 0, "" },
  6117. /*302*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009", -1, 0, 0, "" },
  6118. /*303*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099", -1, 0, 1, "BAS FN4 ASC; AAAA" },
  6119. /*304*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999", -1, 0, 0, "" },
  6120. /*305*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999", -1, 0, 0, "" },
  6121. /*306*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999", -1, 0, 0, "" },
  6122. /*307*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999", -1, 0, 0, "" },
  6123. /*308*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999", -1, 0, 0, "" },
  6124. /*309*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999", -1, 0, 0, "" },
  6125. /*310*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999", -1, 0, 0, "" },
  6126. /*311*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999", -1, 0, 0, "" },
  6127. /*312*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999", -1, 0, 0, "" },
  6128. /*313*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999", -1, 0, 0, "" },
  6129. /*314*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999", -1, 0, 0, "" },
  6130. /*315*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999", -1, 0, 0, "" },
  6131. /*316*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999", -1, 0, 0, "" },
  6132. /*317*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999", -1, 0, 0, "" },
  6133. /*318*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999", -1, 0, 0, "" },
  6134. /*319*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999", -1, 0, 0, "" },
  6135. /*320*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999", -1, 0, 0, "" },
  6136. /*321*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999999", -1, 0, 0, "" },
  6137. /*322*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999999", -1, 0, 0, "" },
  6138. /*323*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999999", -1, 0, 0, "" },
  6139. /*324*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\20099999999999999999999999", -1, 0, 0, "" },
  6140. /*325*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200999999999999999999999999", -1, 0, 0, "" },
  6141. /*326*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\2009999999999999999999999999", -1, 0, 0, "" },
  6142. /*327*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009", -1, 0, 0, "ASC last 1" },
  6143. /*328*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099", -1, 0, 1, "BBBAA" },
  6144. /*329*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999", -1, 0, 0, "" },
  6145. /*330*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999", -1, 0, 0, "" },
  6146. /*331*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999", -1, 0, 0, "" },
  6147. /*332*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999", -1, 0, 0, "" },
  6148. /*333*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999", -1, 0, 0, "" },
  6149. /*334*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999", -1, 0, 0, "" },
  6150. /*335*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999", -1, 0, 0, "" },
  6151. /*336*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999", -1, 0, 0, "" },
  6152. /*337*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999", -1, 0, 0, "" },
  6153. /*338*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999", -1, 0, 0, "" },
  6154. /*339*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999", -1, 0, 0, "" },
  6155. /*340*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999", -1, 0, 0, "" },
  6156. /*341*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999", -1, 0, 0, "" },
  6157. /*342*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999", -1, 0, 0, "" },
  6158. /*343*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999", -1, 0, 0, "" },
  6159. /*344*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999", -1, 0, 0, "" },
  6160. /*345*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999", -1, 0, 0, "" },
  6161. /*346*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999999", -1, 0, 0, "" },
  6162. /*347*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999999", -1, 0, 0, "" },
  6163. /*348*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999999", -1, 0, 0, "" },
  6164. /*349*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999999999999999", -1, 0, 0, "" },
  6165. /*350*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999999999999999", -1, 0, 0, "" },
  6166. /*351*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999999999999999", -1, 0, 0, "" },
  6167. /*352*/ { BARCODE_DATAMATRIX, -1, -1, -1, "a", -1, 0, 0, "ASC" },
  6168. /*353*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aa", -1, 0, 0, "ASC" },
  6169. /*354*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaa", -1, 0, 0, "ASC" },
  6170. /*355*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaa", -1, 0, 0, "ASC" },
  6171. /*356*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaa", -1, 0, 0, "ASC" },
  6172. /*357*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaa", -1, 0, 0, "" },
  6173. /*358*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaa", -1, 0, 0, "" },
  6174. /*359*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaa", -1, 0, 0, "ASC" },
  6175. /*360*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaa", -1, 0, 0, "TEX" },
  6176. /*361*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaa", -1, 0, 0, "" },
  6177. /*362*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaa", -1, 0, 0, "" },
  6178. /*363*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaaa", -1, 0, 0, "" },
  6179. /*364*/ { BARCODE_DATAMATRIX, -1, -1, -1, "aaaaaaaaaaaaa", -1, 0, 0, "" },
  6180. /*365*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001a", -1, 0, 0, "ASC" },
  6181. /*366*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aa", -1, 0, 0, "ASC" },
  6182. /*367*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaa", -1, 0, 0, "ASC" },
  6183. /*368*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaa", -1, 0, 0, "ASC" },
  6184. /*369*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaa", -1, 0, 0, "ASC" },
  6185. /*370*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaa", -1, 0, 0, "" },
  6186. /*371*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaa", -1, 0, 0, "" },
  6187. /*372*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaa", -1, 0, 0, "" },
  6188. /*373*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaa", -1, 0, 2, "TEX; ATTTTTTTTT" },
  6189. /*374*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaa", -1, 0, 0, "" },
  6190. /*375*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaa", -1, 0, 0, "" },
  6191. /*376*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaaa", -1, 0, 2, "TEX; ATTTTTTTTTTTT" },
  6192. /*377*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001aaaaaaaaaaaaa", -1, 0, 0, "" },
  6193. /*378*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001a", -1, 0, 0, "" },
  6194. /*379*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aa", -1, 0, 0, "" },
  6195. /*380*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaa", -1, 0, 0, "" },
  6196. /*381*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaa", -1, 0, 0, "" },
  6197. /*382*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaa", -1, 0, 0, "" },
  6198. /*383*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaa", -1, 0, 0, "" },
  6199. /*384*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaa", -1, 0, 0, "" },
  6200. /*385*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaa", -1, 0, 0, "" },
  6201. /*386*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaa", -1, 0, 0, "" },
  6202. /*387*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaa", -1, 0, 0, "" },
  6203. /*388*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaa", -1, 0, 0, "" },
  6204. /*389*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaaa", -1, 0, 0, "" },
  6205. /*390*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001aaaaaaaaaaaaa", -1, 0, 0, "" },
  6206. /*391*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200a", -1, 0, 0, "ASC last 1" },
  6207. /*392*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aa", -1, 0, 0, "ASC 2" },
  6208. /*393*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaa", -1, 0, 0, "ASC 3" },
  6209. /*394*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaa", -1, 0, 0, "ASC 4" },
  6210. /*395*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaa", -1, 0, 0, "ASC 5" },
  6211. /*396*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaa", -1, 0, 0, "TEX 6" },
  6212. /*397*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa", -1, 0, 0, "TEX" },
  6213. /*398*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa", -1, 0, 0, "TEX" },
  6214. /*399*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaa", -1, 0, 0, "TEX" },
  6215. /*400*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaa", -1, 0, 0, "TEX except last ASC" },
  6216. /*401*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaa", -1, 0, 0, "TEX except last 2 ASC" },
  6217. /*402*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaa", -1, 0, 0, "TEX" },
  6218. /*403*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaa", -1, 0, 0, "TEX except last ASC" },
  6219. /*404*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">", -1, 0, 0, "" },
  6220. /*405*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>", -1, 0, 0, "" },
  6221. /*406*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>", -1, 0, 0, "" },
  6222. /*407*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>", -1, 0, 0, "" },
  6223. /*408*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>", -1, 0, 0, "" },
  6224. /*409*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>", -1, 0, 0, "" },
  6225. /*410*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>", -1, 0, 0, "" },
  6226. /*411*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>", -1, 0, 0, "" },
  6227. /*412*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>", -1, 0, 0, "" },
  6228. /*413*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>", -1, 0, 0, "" },
  6229. /*414*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>", -1, 0, 0, "" },
  6230. /*415*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>", -1, 0, 0, "" },
  6231. /*416*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>", -1, 0, 0, "" },
  6232. /*417*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>>>>", -1, 0, 0, "" },
  6233. /*418*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>", -1, 0, 0, "" },
  6234. /*419*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>", -1, 0, 0, "" },
  6235. /*420*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>", -1, 0, 0, "" },
  6236. /*421*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>", -1, 0, 0, "" },
  6237. /*422*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>", -1, 0, 0, "" },
  6238. /*423*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>", -1, 0, 0, "" },
  6239. /*424*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>", -1, 0, 0, "" },
  6240. /*425*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>", -1, 0, 0, "" },
  6241. /*426*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>", -1, 0, 0, "" },
  6242. /*427*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>", -1, 0, 0, "" },
  6243. /*428*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>", -1, 0, 1, "X12; AAAXXXXXXXXX" },
  6244. /*429*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>>", -1, 0, 0, "" },
  6245. /*430*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001>>>>>>>>>>>>>", -1, 0, 0, "" },
  6246. /*431*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>", -1, 0, 0, "" },
  6247. /*432*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>", -1, 0, 0, "" },
  6248. /*433*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>", -1, 0, 0, "" },
  6249. /*434*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>", -1, 0, 0, "" },
  6250. /*435*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>", -1, 0, 0, "" },
  6251. /*436*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>", -1, 0, 0, "" },
  6252. /*437*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>", -1, 0, 0, "" },
  6253. /*438*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>", -1, 0, 0, "" },
  6254. /*439*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>", -1, 0, 0, "" },
  6255. /*440*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>", -1, 0, 0, "" },
  6256. /*441*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>", -1, 0, 0, "" },
  6257. /*442*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
  6258. /*443*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
  6259. /*444*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>", -1, 0, 0, "" },
  6260. /*445*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>", -1, 0, 0, "" },
  6261. /*446*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>", -1, 0, 0, "" },
  6262. /*447*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>", -1, 0, 0, "" },
  6263. /*448*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>", -1, 0, 0, "" },
  6264. /*449*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>", -1, 0, 0, "" },
  6265. /*450*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>", -1, 0, 0, "" },
  6266. /*451*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>", -1, 0, 0, "" },
  6267. /*452*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>", -1, 0, 0, "" },
  6268. /*453*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
  6269. /*454*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>", -1, 0, 1, "X12; AAAAAXXXXXXXXX" },
  6270. /*455*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
  6271. /*456*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
  6272. /*457*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>", -1, 0, 0, "" },
  6273. /*458*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>", -1, 0, 0, "" },
  6274. /*459*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>", -1, 0, 0, "" },
  6275. /*460*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>", -1, 0, 0, "" },
  6276. /*461*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>", -1, 0, 0, "" },
  6277. /*462*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>", -1, 0, 0, "" },
  6278. /*463*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>", -1, 0, 0, "" },
  6279. /*464*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>", -1, 0, 0, "" },
  6280. /*465*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>", -1, 0, 0, "" },
  6281. /*466*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
  6282. /*467*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>", -1, 0, 0, "" },
  6283. /*468*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
  6284. /*469*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
  6285. /*470*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>", -1, 0, 0, "" },
  6286. /*471*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>", -1, 0, 0, "" },
  6287. /*472*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>", -1, 0, 0, "" },
  6288. /*473*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>", -1, 0, 0, "" },
  6289. /*474*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>", -1, 0, 0, "" },
  6290. /*475*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>", -1, 0, 0, "" },
  6291. /*476*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>", -1, 0, 0, "" },
  6292. /*477*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>", -1, 0, 0, "" },
  6293. /*478*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>", -1, 0, 0, "" },
  6294. /*479*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>", -1, 0, 0, "" },
  6295. /*480*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>", -1, 0, 0, "" },
  6296. /*481*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>>", -1, 0, 0, "" },
  6297. /*482*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001>>>>>>>>>>>>>", -1, 0, 0, "" },
  6298. /*483*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>", -1, 0, 0, "" },
  6299. /*484*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>", -1, 0, 0, "" },
  6300. /*485*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>", -1, 0, 1, "BAS ASC; AAAA" },
  6301. /*486*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>", -1, 0, 1, "BAS ASC; AAAAA" },
  6302. /*487*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>", -1, 0, 1, "BAS ASC; AAEEEE" },
  6303. /*488*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>", -1, 0, 0, "BAS X12; AAEEEEA" },
  6304. /*489*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>", -1, 0, 2, "BAS X12; AAXXXXXX" },
  6305. /*490*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>", -1, 0, 1, "BAS EDI; AEEEEEEEE" },
  6306. /*491*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>", -1, 0, 0, "" },
  6307. /*492*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>", -1, 0, 2, "BAS X12; AAXXXXXXXXX" },
  6308. /*493*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>", -1, 0, 1, "BAS X12;2; AEEEEEEEEEEE" },
  6309. /*494*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>>", -1, 0, 0, "" },
  6310. /*495*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200>>>>>>>>>>>>>", -1, 0, 2, "BAS; AAXXXXXXXXXXXX" },
  6311. /*496*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>", -1, 0, 0, "" },
  6312. /*497*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>", -1, 0, 0, "" },
  6313. /*498*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>", -1, 0, 0, "" },
  6314. /*499*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>", -1, 0, 0, "" },
  6315. /*500*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>", -1, 0, 0, "" },
  6316. /*501*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>", -1, 0, 0, "" },
  6317. /*502*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>", -1, 0, 0, "" },
  6318. /*503*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>", -1, 0, 0, "" },
  6319. /*504*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>", -1, 0, 0, "" },
  6320. /*505*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>", -1, 0, 0, "" },
  6321. /*506*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>", -1, 0, 0, "" },
  6322. /*507*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>>", -1, 0, 0, "" },
  6323. /*508*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200>>>>>>>>>>>>>", -1, 0, 0, "" },
  6324. /*509*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>", -1, 0, 0, "ASC last 1" },
  6325. /*510*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>", -1, 0, 0, "ASC 2" },
  6326. /*511*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>", -1, 0, 0, "ASC 3" },
  6327. /*512*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>", -1, 0, 0, "ASC 4" },
  6328. /*513*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>", -1, 0, 0, "ASC 5" },
  6329. /*514*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>", -1, 0, 0, "X12 6" },
  6330. /*515*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>", -1, 0, 0, "X12 except last 2 ASC" },
  6331. /*516*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>", -1, 0, 0, "X12" },
  6332. /*517*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>", -1, 0, 0, "X12" },
  6333. /*518*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>", -1, 0, 0, "X12 except last 2 ASC" },
  6334. /*519*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>", -1, 0, 0, "X12 except last 3 ASC" },
  6335. /*520*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>", -1, 0, 0, "X12" },
  6336. /*521*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>", -1, 0, 0, "X12 except last ASC" },
  6337. /*522*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".", -1, 0, 0, "" },
  6338. /*523*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..", -1, 0, 0, "" },
  6339. /*524*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...", -1, 0, 0, "" },
  6340. /*525*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....", -1, 0, 0, "" },
  6341. /*526*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....", -1, 0, 0, "" },
  6342. /*527*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......", -1, 0, 0, "" },
  6343. /*528*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......", -1, 0, 0, "" },
  6344. /*529*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........", -1, 0, 0, "" },
  6345. /*530*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........", -1, 0, 0, "" },
  6346. /*531*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........", -1, 0, 1, "EDI; AAEEEEEEEE" },
  6347. /*532*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........", -1, 0, 0, "" },
  6348. /*533*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............", -1, 0, 0, "" },
  6349. /*534*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............", -1, 0, 0, "" },
  6350. /*535*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.", -1, 0, 0, "" },
  6351. /*536*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001..", -1, 0, 0, "" },
  6352. /*537*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001...", -1, 0, 0, "" },
  6353. /*538*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001....", -1, 0, 0, "" },
  6354. /*539*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.....", -1, 0, 0, "" },
  6355. /*540*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001......", -1, 0, 0, "" },
  6356. /*541*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.......", -1, 0, 0, "" },
  6357. /*542*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001........", -1, 0, 0, "" },
  6358. /*543*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.........", -1, 0, 0, "" },
  6359. /*544*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001..........", -1, 0, 0, "" },
  6360. /*545*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001...........", -1, 0, 0, "" },
  6361. /*546*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001............", -1, 0, 0, "" },
  6362. /*547*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001.............", -1, 0, 0, "" },
  6363. /*548*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.", -1, 0, 0, "" },
  6364. /*549*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001..", -1, 0, 0, "" },
  6365. /*550*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001...", -1, 0, 0, "" },
  6366. /*551*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001....", -1, 0, 0, "" },
  6367. /*552*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.....", -1, 0, 0, "" },
  6368. /*553*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001......", -1, 0, 0, "" },
  6369. /*554*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.......", -1, 0, 0, "" },
  6370. /*555*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001........", -1, 0, 0, "" },
  6371. /*556*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.........", -1, 0, 0, "" },
  6372. /*557*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001..........", -1, 0, 1, "EDI; AAAAEEEEEEEE" },
  6373. /*558*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001...........", -1, 0, 0, "" },
  6374. /*559*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001............", -1, 0, 0, "" },
  6375. /*560*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001.............", -1, 0, 0, "" },
  6376. /*561*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.", -1, 0, 0, "" },
  6377. /*562*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001..", -1, 0, 0, "" },
  6378. /*563*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001...", -1, 0, 0, "" },
  6379. /*564*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001....", -1, 0, 0, "" },
  6380. /*565*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.....", -1, 0, 0, "" },
  6381. /*566*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001......", -1, 0, 0, "" },
  6382. /*567*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.......", -1, 0, 0, "" },
  6383. /*568*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001........", -1, 0, 0, "" },
  6384. /*569*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.........", -1, 0, 0, "" },
  6385. /*570*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001..........", -1, 0, 0, "" },
  6386. /*571*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001...........", -1, 0, 0, "" },
  6387. /*572*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001............", -1, 0, 0, "" },
  6388. /*573*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001.............", -1, 0, 1, "EDI; AAAAEEEEEEEEEEEE" },
  6389. /*574*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.", -1, 0, 0, "" },
  6390. /*575*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001..", -1, 0, 0, "" },
  6391. /*576*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001...", -1, 0, 0, "" },
  6392. /*577*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001....", -1, 0, 0, "" },
  6393. /*578*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.....", -1, 0, 0, "" },
  6394. /*579*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001......", -1, 0, 0, "" },
  6395. /*580*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.......", -1, 0, 0, "" },
  6396. /*581*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001........", -1, 0, 0, "" },
  6397. /*582*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.........", -1, 0, 0, "" },
  6398. /*583*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001..........", -1, 0, 0, "" },
  6399. /*584*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001...........", -1, 0, 0, "" },
  6400. /*585*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001............", -1, 0, 0, "" },
  6401. /*586*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001.............", -1, 0, 0, "" },
  6402. /*587*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.", -1, 0, 0, "" },
  6403. /*588*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001..", -1, 0, 0, "" },
  6404. /*589*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001...", -1, 0, 0, "" },
  6405. /*590*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001....", -1, 0, 0, "" },
  6406. /*591*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.....", -1, 0, 0, "" },
  6407. /*592*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001......", -1, 0, 0, "" },
  6408. /*593*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.......", -1, 0, 0, "" },
  6409. /*594*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001........", -1, 0, 0, "" },
  6410. /*595*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.........", -1, 0, 0, "" },
  6411. /*596*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001..........", -1, 0, 1, "" },
  6412. /*597*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001...........", -1, 0, 0, "" },
  6413. /*598*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001............", -1, 0, 0, "" },
  6414. /*599*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\001\001\001\001\001.............", -1, 0, 0, "" },
  6415. /*600*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.", -1, 0, 0, "" },
  6416. /*601*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200..", -1, 0, 0, "" },
  6417. /*602*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200...", -1, 0, 1, "" },
  6418. /*603*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200....", -1, 0, 1, "" },
  6419. /*604*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.....", -1, 0, 1, "" },
  6420. /*605*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200......", -1, 0, 1, "" },
  6421. /*606*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.......", -1, 0, 1, "" },
  6422. /*607*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200........", -1, 0, 1, "" },
  6423. /*608*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.........", -1, 0, 1, "" },
  6424. /*609*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200..........", -1, 0, 1, "" },
  6425. /*610*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200...........", -1, 0, 1, "" },
  6426. /*611*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200............", -1, 0, 2, "" },
  6427. /*612*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200.............", -1, 0, 1, "" },
  6428. /*613*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.", -1, 0, 0, "" },
  6429. /*614*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200..", -1, 0, 0, "" },
  6430. /*615*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200...", -1, 0, 0, "" },
  6431. /*616*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200....", -1, 0, 0, "" },
  6432. /*617*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.....", -1, 0, 0, "" },
  6433. /*618*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200......", -1, 0, 0, "" },
  6434. /*619*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.......", -1, 0, 0, "" },
  6435. /*620*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200........", -1, 0, 0, "" },
  6436. /*621*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.........", -1, 0, 0, "" },
  6437. /*622*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200..........", -1, 0, 0, "" },
  6438. /*623*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200...........", -1, 0, 0, "" },
  6439. /*624*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200............", -1, 0, 0, "" },
  6440. /*625*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200.............", -1, 0, 0, "" },
  6441. /*626*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.", -1, 0, 0, "ASC last 1" },
  6442. /*627*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200..", -1, 0, 0, "ASC 2" },
  6443. /*628*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200...", -1, 0, 0, "ASC 3" },
  6444. /*629*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200....", -1, 0, 0, "ASC 4" },
  6445. /*630*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.....", -1, 0, 0, "ASC 5" },
  6446. /*631*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200......", -1, 0, 0, "ASC 6" },
  6447. /*632*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.......", -1, 0, 0, "ASC 7" },
  6448. /*633*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200........", -1, 0, 0, "EDI 8" },
  6449. /*634*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.........", -1, 0, 0, "EDI" },
  6450. /*635*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200..........", -1, 0, 1, "BBBAAEEEEEEEE" },
  6451. /*636*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200...........", -1, 0, 0, "EDI" },
  6452. /*637*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200............", -1, 0, 0, "EDI" },
  6453. /*638*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200.............", -1, 0, 0, "EDI except last ASC" },
  6454. /*639*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200A\200\200\200", -1, 0, 0, "BAS" },
  6455. /*640*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AA\200\200\200", -1, 0, 0, "BAS" },
  6456. /*641*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAA\200\200\200", -1, 0, 0, "BAS" },
  6457. /*642*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAA\200\200\200", -1, 0, 0, "BAS" },
  6458. /*643*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAA\200\200\200", -1, 0, 0, "BAS" },
  6459. /*644*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAA\200\200\200", -1, 0, 0, "BAS" },
  6460. /*645*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAA\200\200\200", -1, 0, 0, "BAS 7 As, no switch as C40 & X12 cancel each other out" },
  6461. /*646*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAA\200\200\200", -1, 0, 0, "BAS 8 As, no switch as C40 & X12 cancel each other out" },
  6462. /*647*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAA\200\200\200", -1, 0, 0, "BAS 9 As, no switch as C40 & X12 cancel each other out" },
  6463. /*648*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 10 As, no switch as C40 & X12 cancel each other out" },
  6464. /*649*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 11 As, no switch as C40 & X12 cancel each other out" },
  6465. /*650*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 12 As, no switch as C40 & X12 cancel each other out" },
  6466. /*651*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200AAAAAAAAAAAAA\200\200\200", -1, 0, 0, "BAS 13 As, no switch as C40 & X12 cancel each other out" },
  6467. /*652*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009\200\200\200", -1, 0, 0, "BAS" },
  6468. /*653*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099\200\200\200", -1, 0, 0, "BAS" },
  6469. /*654*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999\200\200\200", -1, 0, 0, "BAS" },
  6470. /*655*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999\200\200\200", -1, 0, 0, "ASC 4" },
  6471. /*656*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999\200\200\200", -1, 0, 0, "ASC 4" },
  6472. /*657*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999\200\200\200", -1, 0, 0, "ASC 6" },
  6473. /*658*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999\200\200\200", -1, 0, 0, "ASC 6" },
  6474. /*659*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999\200\200\200", -1, 0, 0, "ASC 8" },
  6475. /*660*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999\200\200\200", -1, 0, 0, "ASC 8" },
  6476. /*661*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999\200\200\200", -1, 0, 0, "ASC 10" },
  6477. /*662*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\20099999999999\200\200\200", -1, 0, 0, "ASC 10" },
  6478. /*663*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200999999999999\200\200\200", -1, 0, 0, "ASC 12" },
  6479. /*664*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\2009999999999999\200\200\200", -1, 0, 0, "ASC 12" },
  6480. /*665*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200a\200\200\200", -1, 0, 0, "BAS" },
  6481. /*666*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aa\200\200\200", -1, 0, 0, "BAS" },
  6482. /*667*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaa\200\200\200", -1, 0, 0, "BAS" },
  6483. /*668*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaa\200\200\200", -1, 0, 0, "BAS" },
  6484. /*669*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaa\200\200\200", -1, 0, 0, "BAS" },
  6485. /*670*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaa\200\200\200", -1, 0, 0, "BAS" },
  6486. /*671*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
  6487. /*672*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's end 2 extended, was worse before dm_text_sp_cnt()" },
  6488. /*673*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200", -1, 0, 0, "7 a's end 1 extended, was worse before dm_text_sp_cnt()" },
  6489. /*674*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa", -1, 0, 0, "7 a's end 0 extended, switches to TEX but same codeword count" },
  6490. /*675*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
  6491. /*676*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200\200\200aaaaaaa\200\200", -1, 0, 0, "7 a's, was worse before dm_text_sp_cnt()" },
  6492. /*677*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200\200", -1, 0, 0, "7 a's end 4 extended, was worse before dm_text_sp_cnt()" },
  6493. /*678*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaa\200\200\200\200\200", -1, 0, 0, "7 a's end 5 extended, was worse before dm_text_sp_cnt()" },
  6494. /*679*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa\200\200", -1, 0, 0, "8 a's end 2 extended, was worse before dm_text_sp_cnt()" },
  6495. /*680*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaa\200\200\200", -1, 0, 0, "8 a's, was worse before dm_text_sp_cnt()" },
  6496. /*681*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaa\200\200\200", -1, 0, 0, "9 a's, was worse before dm_text_sp_cnt()" },
  6497. /*682*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaa\200\200\200", -1, 0, 0, "10 a's, was worse before dm_text_sp_cnt()" },
  6498. /*683*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaa\200\200\200", -1, 0, 0, "11 a's, was worse before dm_text_sp_cnt()" },
  6499. /*684*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaa\200\200\200", -1, 0, 0, "12 a's, switches to TEX but same codeword count" },
  6500. /*685*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaa\200\200\200", -1, 0, 0, "13 a's, switches to TEX but same codeword count" },
  6501. /*686*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "14 a's, switches to TEX but same codeword count" },
  6502. /*687*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "15 a's, switches to TEX, better" },
  6503. /*688*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "16 a's, switches to TEX, better" },
  6504. /*689*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "17 a's, switches to TEX, better" },
  6505. /*690*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "18 a's, switches to TEX, better" },
  6506. /*691*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "19 a's, switches to TEX, better" },
  6507. /*692*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "20 a's, switches to TEX, better" },
  6508. /*693*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaaaaaaaaaaaaaaa\200\200\200", -1, 0, 0, "21 a's, switches to TEX, better" },
  6509. /*694*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200Aaaaaaa\200\200\200", -1, 0, 0, "" },
  6510. /*695*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaAaaa\200\200\200", -1, 0, 0, "" },
  6511. /*696*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaA\200\200\200", -1, 0, 0, "" },
  6512. /*697*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200Aaaaaaaa\200\200\200", -1, 0, 0, "" },
  6513. /*698*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaAaaa\200\200\200", -1, 0, 0, "" },
  6514. /*699*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaAa\200\200\200", -1, 0, 0, "" },
  6515. /*700*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaA\200\200\200", -1, 0, 0, "Was worse before dm_text_sp_cnt()" },
  6516. /*701*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200aaaaaaaAa\200\200\200", -1, 0, 0, "Was worse before dm_text_sp_cnt()" },
  6517. /*702*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>\200\200\200", -1, 0, 0, "BAS" },
  6518. /*703*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>\200\200\200", -1, 0, 0, "BAS" },
  6519. /*704*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>\200\200\200", -1, 0, 0, "BAS" },
  6520. /*705*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>\200\200\200", -1, 0, 0, "BAS" },
  6521. /*706*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6522. /*707*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6523. /*708*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6524. /*709*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6525. /*710*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6526. /*711*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6527. /*712*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6528. /*713*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>\200\200\200", -1, 0, 0, "BAS" },
  6529. /*714*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 12" },
  6530. /*715*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 12" },
  6531. /*716*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 12" },
  6532. /*717*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 15" },
  6533. /*718*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 15" },
  6534. /*719*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 15" },
  6535. /*720*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 18" },
  6536. /*721*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 18" },
  6537. /*722*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 1, "X12 18" },
  6538. /*723*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200>>>>>>>>>>>>>>>>>>>>>>\200\200\200", -1, 0, 0, "X12 21" },
  6539. /*724*/ { BARCODE_DATAMATRIX, -1, -1, -1, "Aa", -1, 0, 0, "" },
  6540. /*725*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAa", -1, 0, 0, "" },
  6541. /*726*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAa", -1, 0, 0, "" },
  6542. /*727*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAa", -1, 0, 0, "" },
  6543. /*728*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAa", -1, 0, 0, "" },
  6544. /*729*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAa", -1, 0, 0, "" },
  6545. /*730*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAa", -1, 0, 0, "" },
  6546. /*731*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAa", -1, 0, 1, "" },
  6547. /*732*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAa", -1, 0, 0, "" },
  6548. /*733*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAa", -1, 0, 0, "" },
  6549. /*734*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAa", -1, 0, 1, "" },
  6550. /*735*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAa", -1, 0, 0, "" },
  6551. /*736*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAa", -1, 0, 0, "" },
  6552. /*737*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAa", -1, 0, 1, "" },
  6553. /*738*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAa", -1, 0, 0, "" },
  6554. /*739*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A12", -1, 0, 0, "" },
  6555. /*740*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA12", -1, 0, 0, "" },
  6556. /*741*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA12", -1, 0, 0, "" },
  6557. /*742*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA12", -1, 0, 0, "" },
  6558. /*743*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA12", -1, 0, 0, "" },
  6559. /*744*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA12", -1, 0, 0, "" },
  6560. /*745*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA12", -1, 0, 0, "" },
  6561. /*746*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA12", -1, 0, 0, "" },
  6562. /*747*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA12", -1, 0, 0, "" },
  6563. /*748*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA12", -1, 0, 0, "" },
  6564. /*749*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA12", -1, 0, 0, "" },
  6565. /*750*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA12", -1, 0, 0, "" },
  6566. /*751*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA12", -1, 0, 0, "" },
  6567. /*752*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA12", -1, 0, 0, "" },
  6568. /*753*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA12", -1, 0, 0, "" },
  6569. /*754*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A12a", -1, 0, 0, "" },
  6570. /*755*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA12a", -1, 0, 0, "" },
  6571. /*756*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA12a", -1, 0, 0, "" },
  6572. /*757*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA12a", -1, 0, 0, "" },
  6573. /*758*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA12a", -1, 0, 0, "" },
  6574. /*759*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA12a", -1, 0, 0, "" },
  6575. /*760*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA12a", -1, 0, 0, "" },
  6576. /*761*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA12a", -1, 0, 0, "" },
  6577. /*762*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA12a", -1, 0, 0, "" },
  6578. /*763*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA12a", -1, 0, 0, "" },
  6579. /*764*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA12a", -1, 0, 0, "" },
  6580. /*765*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA12a", -1, 0, 0, "" },
  6581. /*766*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA12a", -1, 0, 0, "" },
  6582. /*767*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA12a", -1, 0, 0, "" },
  6583. /*768*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA12a", -1, 0, 0, "" },
  6584. /*769*/ { BARCODE_DATAMATRIX, -1, -1, -1, "A1212", -1, 0, 0, "" },
  6585. /*770*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AA1212", -1, 0, 0, "" },
  6586. /*771*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAA1212", -1, 0, 0, "" },
  6587. /*772*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAA1212", -1, 0, 0, "" },
  6588. /*773*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAA1212", -1, 0, 0, "" },
  6589. /*774*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAA1212", -1, 0, 0, "" },
  6590. /*775*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAA1212", -1, 0, 0, "" },
  6591. /*776*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAA1212", -1, 0, 0, "" },
  6592. /*777*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAA1212", -1, 0, 0, "" },
  6593. /*778*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAA1212", -1, 0, 0, "" },
  6594. /*779*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAA1212", -1, 0, 0, "" },
  6595. /*780*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA1212", -1, 0, 0, "" },
  6596. /*781*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAA1212", -1, 0, 0, "" },
  6597. /*782*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA1212", -1, 0, 0, "" },
  6598. /*783*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAA1212", -1, 0, 0, "" },
  6599. /*784*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".a", -1, 0, 0, "" },
  6600. /*785*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..a", -1, 0, 0, "" },
  6601. /*786*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...a", -1, 0, 0, "" },
  6602. /*787*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....a", -1, 0, 0, "" },
  6603. /*788*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....a", -1, 0, 0, "" },
  6604. /*789*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......a", -1, 0, 0, "" },
  6605. /*790*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......a", -1, 0, 0, "" },
  6606. /*791*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........a", -1, 0, 1, "" },
  6607. /*792*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........a", -1, 0, 1, "" },
  6608. /*793*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........a", -1, 0, 1, "" },
  6609. /*794*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........a", -1, 0, 0, "" },
  6610. /*795*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............a", -1, 0, 1, "" },
  6611. /*796*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............a", -1, 0, 1, "" },
  6612. /*797*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............a", -1, 0, 0, "" },
  6613. /*798*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............a", -1, 0, 0, "" },
  6614. /*799*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".12", -1, 0, 0, "" },
  6615. /*800*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..12", -1, 0, 0, "" },
  6616. /*801*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...12", -1, 0, 0, "" },
  6617. /*802*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....12", -1, 0, 0, "" },
  6618. /*803*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....12", -1, 0, 0, "" },
  6619. /*804*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......12", -1, 0, 0, "" },
  6620. /*805*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......12", -1, 0, 0, "" },
  6621. /*806*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........12", -1, 0, 1, "" },
  6622. /*807*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........12", -1, 0, 1, "" },
  6623. /*808*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........12", -1, 0, 0, "" },
  6624. /*809*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........12", -1, 0, 0, "" },
  6625. /*810*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............12", -1, 0, 1, "" },
  6626. /*811*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............12", -1, 0, 1, "" },
  6627. /*812*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............12", -1, 0, 0, "" },
  6628. /*813*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............12", -1, 0, 0, "" },
  6629. /*814*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".\200", -1, 0, 0, "" },
  6630. /*815*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..\200", -1, 0, 0, "" },
  6631. /*816*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...\200", -1, 0, 1, "" },
  6632. /*817*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....\200", -1, 0, 1, "" },
  6633. /*818*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....\200", -1, 0, 1, "" },
  6634. /*819*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......\200", -1, 0, 1, "" },
  6635. /*820*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......\200", -1, 0, 1, "" },
  6636. /*821*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........\200", -1, 0, 1, "" },
  6637. /*822*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........\200", -1, 0, 0, "" },
  6638. /*823*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........\200", -1, 0, 1, "" },
  6639. /*824*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........\200", -1, 0, 0, "" },
  6640. /*825*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............\200", -1, 0, 0, "" },
  6641. /*826*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............\200", -1, 0, 0, "" },
  6642. /*827*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............\200", -1, 0, 1, "" },
  6643. /*828*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............\200", -1, 0, 0, "" },
  6644. /*829*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".aa", -1, 0, 0, "" },
  6645. /*830*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..aa", -1, 0, 0, "" },
  6646. /*831*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...aa", -1, 0, 0, "" },
  6647. /*832*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....aa", -1, 0, 0, "" },
  6648. /*833*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....aa", -1, 0, 0, "" },
  6649. /*834*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......aa", -1, 0, 0, "" },
  6650. /*835*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......aa", -1, 0, 0, "" },
  6651. /*836*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........aa", -1, 0, 0, "" },
  6652. /*837*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........aa", -1, 0, 1, "" },
  6653. /*838*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........aa", -1, 0, 0, "" },
  6654. /*839*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........aa", -1, 0, 0, "" },
  6655. /*840*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............aa", -1, 0, 1, "" },
  6656. /*841*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............aa", -1, 0, 0, "" },
  6657. /*842*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............aa", -1, 0, 0, "" },
  6658. /*843*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............aa", -1, 0, 0, "" },
  6659. /*844*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".12a", -1, 0, 0, "" },
  6660. /*845*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..12a", -1, 0, 0, "" },
  6661. /*846*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...12a", -1, 0, 0, "" },
  6662. /*847*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....12a", -1, 0, 0, "" },
  6663. /*848*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....12a", -1, 0, 0, "" },
  6664. /*849*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......12a", -1, 0, 0, "" },
  6665. /*850*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......12a", -1, 0, 0, "" },
  6666. /*851*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........12a", -1, 0, 0, "" },
  6667. /*852*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........12a", -1, 0, 1, "" },
  6668. /*853*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........12a", -1, 0, 1, "" },
  6669. /*854*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........12a", -1, 0, 0, "" },
  6670. /*855*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............12a", -1, 0, 1, "" },
  6671. /*856*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............12a", -1, 0, 0, "" },
  6672. /*857*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............12a", -1, 0, 0, "" },
  6673. /*858*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............12a", -1, 0, 0, "" },
  6674. /*859*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".a12", -1, 0, 0, "" },
  6675. /*860*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..a12", -1, 0, 0, "" },
  6676. /*861*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...a12", -1, 0, 0, "" },
  6677. /*862*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....a12", -1, 0, 0, "" },
  6678. /*863*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....a12", -1, 0, 0, "" },
  6679. /*864*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......a12", -1, 0, 0, "" },
  6680. /*865*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......a12", -1, 0, 0, "" },
  6681. /*866*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........a12", -1, 0, 0, "" },
  6682. /*867*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........a12", -1, 0, 1, "" },
  6683. /*868*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........a12", -1, 0, 0, "" },
  6684. /*869*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........a12", -1, 0, 0, "" },
  6685. /*870*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............a12", -1, 0, 1, "" },
  6686. /*871*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............a12", -1, 0, 0, "" },
  6687. /*872*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............a12", -1, 0, 0, "" },
  6688. /*873*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............a12", -1, 0, 0, "" },
  6689. /*874*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".1212", -1, 0, 0, "" },
  6690. /*875*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..1212", -1, 0, 0, "" },
  6691. /*876*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...1212", -1, 0, 0, "" },
  6692. /*877*/ { BARCODE_DATAMATRIX, -1, -1, -1, "....1212", -1, 0, 0, "" },
  6693. /*878*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".....1212", -1, 0, 0, "" },
  6694. /*879*/ { BARCODE_DATAMATRIX, -1, -1, -1, "......1212", -1, 0, 0, "" },
  6695. /*880*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".......1212", -1, 0, 0, "" },
  6696. /*881*/ { BARCODE_DATAMATRIX, -1, -1, -1, "........1212", -1, 0, 0, "" },
  6697. /*882*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".........1212", -1, 0, 1, "" },
  6698. /*883*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..........1212", -1, 0, 1, "" },
  6699. /*884*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...........1212", -1, 0, 0, "" },
  6700. /*885*/ { BARCODE_DATAMATRIX, -1, -1, -1, "............1212", -1, 0, 1, "" },
  6701. /*886*/ { BARCODE_DATAMATRIX, -1, -1, -1, ".............1212", -1, 0, 0, "" },
  6702. /*887*/ { BARCODE_DATAMATRIX, -1, -1, -1, "..............1212", -1, 0, 0, "" },
  6703. /*888*/ { BARCODE_DATAMATRIX, -1, -1, -1, "...............1212", -1, 0, 0, "" },
  6704. /*889*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">a", -1, 0, 0, "" },
  6705. /*890*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>a", -1, 0, 0, "" },
  6706. /*891*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>a", -1, 0, 0, "" },
  6707. /*892*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>a", -1, 0, 0, "" },
  6708. /*893*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>a", -1, 0, 0, "" },
  6709. /*894*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>a", -1, 0, 0, "" },
  6710. /*895*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>a", -1, 0, 0, "" },
  6711. /*896*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>a", -1, 0, 1, "" },
  6712. /*897*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>a", -1, 0, 1, "" },
  6713. /*898*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>a", -1, 0, 1, "" },
  6714. /*899*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>a", -1, 0, 1, "" },
  6715. /*900*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>a", -1, 0, 2, "" },
  6716. /*901*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>a", -1, 0, 0, "" },
  6717. /*902*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>a", -1, 0, 0, "" },
  6718. /*903*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>a", -1, 0, 1, "" },
  6719. /*904*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">12", -1, 0, 0, "" },
  6720. /*905*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>12", -1, 0, 0, "" },
  6721. /*906*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>12", -1, 0, 0, "" },
  6722. /*907*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>12", -1, 0, 0, "" },
  6723. /*908*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>12", -1, 0, 0, "" },
  6724. /*909*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>12", -1, 0, 0, "" },
  6725. /*910*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>12", -1, 0, 0, "" },
  6726. /*911*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>12", -1, 0, 0, "" },
  6727. /*912*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>12", -1, 0, 0, "" },
  6728. /*913*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>12", -1, 0, 0, "" },
  6729. /*914*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>12", -1, 0, 0, "" },
  6730. /*915*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>12", -1, 0, 0, "" },
  6731. /*916*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>12", -1, 0, 0, "" },
  6732. /*917*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>12", -1, 0, 0, "" },
  6733. /*918*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>12", -1, 0, 0, "" },
  6734. /*919*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">\200", -1, 0, 0, "" },
  6735. /*920*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>\200", -1, 0, 0, "" },
  6736. /*921*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>\200", -1, 0, 1, "" },
  6737. /*922*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>\200", -1, 0, 1, "" },
  6738. /*923*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>\200", -1, 0, 1, "" },
  6739. /*924*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>\200", -1, 0, 1, "" },
  6740. /*925*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>\200", -1, 0, 1, "" },
  6741. /*926*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>\200", -1, 0, 1, "" },
  6742. /*927*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>\200", -1, 0, 1, "" },
  6743. /*928*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>\200", -1, 0, 2, "" },
  6744. /*929*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>\200", -1, 0, 2, "" },
  6745. /*930*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>\200", -1, 0, 2, "" },
  6746. /*931*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>\200", -1, 0, 0, "" },
  6747. /*932*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>\200", -1, 0, 0, "" },
  6748. /*933*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>\200", -1, 0, 1, "" },
  6749. /*934*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">aa", -1, 0, 0, "" },
  6750. /*935*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>aa", -1, 0, 0, "" },
  6751. /*936*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>aa", -1, 0, 0, "" },
  6752. /*937*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>aa", -1, 0, 0, "" },
  6753. /*938*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>aa", -1, 0, 0, "" },
  6754. /*939*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>aa", -1, 0, 0, "" },
  6755. /*940*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>aa", -1, 0, 0, "" },
  6756. /*941*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>aa", -1, 0, 0, "" },
  6757. /*942*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>aa", -1, 0, 1, "" },
  6758. /*943*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>aa", -1, 0, 1, "" },
  6759. /*944*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>aa", -1, 0, 1, "" },
  6760. /*945*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>aa", -1, 0, 2, "" },
  6761. /*946*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>aa", -1, 0, 0, "" },
  6762. /*947*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>aa", -1, 0, 0, "XXXXXXXXXXXXAAAA" },
  6763. /*948*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>aa", -1, 0, 0, "EEEEEEEEEEEEEEEAA" },
  6764. /*949*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">12a", -1, 0, 0, "" },
  6765. /*950*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>12a", -1, 0, 0, "" },
  6766. /*951*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>12a", -1, 0, 0, "" },
  6767. /*952*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>12a", -1, 0, 0, "" },
  6768. /*953*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>12a", -1, 0, 0, "" },
  6769. /*954*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>12a", -1, 0, 0, "" },
  6770. /*955*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>12a", -1, 0, 0, "" },
  6771. /*956*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>12a", -1, 0, 0, "" },
  6772. /*957*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>12a", -1, 0, 1, "" },
  6773. /*958*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>12a", -1, 0, 1, "" },
  6774. /*959*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>12a", -1, 0, 0, "" },
  6775. /*960*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>12a", -1, 0, 0, "" },
  6776. /*961*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>12a", -1, 0, 0, "" },
  6777. /*962*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>12a", -1, 0, 0, "" },
  6778. /*963*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>12a", -1, 0, 0, "" },
  6779. /*964*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">a12", -1, 0, 0, "" },
  6780. /*965*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>a12", -1, 0, 0, "" },
  6781. /*966*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>a12", -1, 0, 0, "" },
  6782. /*967*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>a12", -1, 0, 0, "" },
  6783. /*968*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>a12", -1, 0, 0, "" },
  6784. /*969*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>a12", -1, 0, 0, "" },
  6785. /*970*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>a12", -1, 0, 0, "" },
  6786. /*971*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>a12", -1, 0, 0, "" },
  6787. /*972*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>a12", -1, 0, 1, "" },
  6788. /*973*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>a12", -1, 0, 1, "" },
  6789. /*974*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>a12", -1, 0, 1, "" },
  6790. /*975*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>a12", -1, 0, 2, "" },
  6791. /*976*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>a12", -1, 0, 0, "" },
  6792. /*977*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>a12", -1, 0, 0, "" },
  6793. /*978*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>a12", -1, 0, 1, "" },
  6794. /*979*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">1212", -1, 0, 0, "" },
  6795. /*980*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>1212", -1, 0, 0, "" },
  6796. /*981*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>1212", -1, 0, 0, "" },
  6797. /*982*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>1212", -1, 0, 0, "" },
  6798. /*983*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>1212", -1, 0, 0, "" },
  6799. /*984*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>1212", -1, 0, 0, "" },
  6800. /*985*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>1212", -1, 0, 0, "" },
  6801. /*986*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>1212", -1, 0, 0, "" },
  6802. /*987*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>1212", -1, 0, 0, "" },
  6803. /*988*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>1212", -1, 0, 0, "" },
  6804. /*989*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>1212", -1, 0, 0, "" },
  6805. /*990*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>1212", -1, 0, 0, "EEEEEEEEEEEEAAAA" },
  6806. /*991*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>1212", -1, 0, 0, "XXXXXXXXXXXXAAAAA" },
  6807. /*992*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>1212", -1, 0, 0, "XXXXXXXXXXXXAAAAAA" },
  6808. /*993*/ { BARCODE_DATAMATRIX, -1, -1, -1, ">>>>>>>>>>>>>>>1212", -1, 0, 0, "" },
  6809. /*994*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200|||||||||||||", -1, 0, 0, "Variant 1 last 3 ASC" },
  6810. /*995*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAA|||||||||||AAAAAAAAAAAAAAA", -1, 0, 1, "" },
  6811. /*996*/ { BARCODE_DATAMATRIX, -1, -1, -1, "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM" "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK" "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG" "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567" "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde" "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO", -1, 0, 10, "960 chars, text/numeric" },
  6812. /*997*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\000\004\a\b\t\n\v\f\r\033\035\036\201\\", 14, 0, 1, "From test_library escape_char_process 0, variant 1 later switch to B256 and changes to ASC for last 2 chars" },
  6813. /*998*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAA*+*0**AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 2, "" },
  6814. /*999*/ { BARCODE_DATAMATRIX, -1, -1, -1, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAA", -1, 0, 0, "" },
  6815. /*1000*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177", 128, 0, 0, "" },
  6816. /*1001*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, "\200\200\200\035\200\200\035\200\200", -1, 0, 1, "Can't have extended ASCII in GS1 mode so these will never happen" },
  6817. /*1002*/ { BARCODE_DATAMATRIX, GS1_MODE, GS1_GS_SEPARATOR, -1, "\200\200\200\035\200\200\035\200\200", -1, 0, 0, "" },
  6818. /*1003*/ { BARCODE_DATAMATRIX, GS1_MODE, -1, -1, "\200\200\200\200\035\200\200\200\035\200\200", -1, 0, 1, "Stays in ASC after 1st FNC1" },
  6819. /*1004*/ { BARCODE_DATAMATRIX, GS1_MODE, GS1_GS_SEPARATOR, -1, "\200\200\200\200\035\200\200\200\035\200\200", -1, 0, 0, "" },
  6820. /*1005*/ { BARCODE_DATAMATRIX, -1, -1, -1, "https://example.com/01/09506000134369", -1, 0, 0, "" },
  6821. /*1006*/ { BARCODE_DATAMATRIX, -1, -1, -1, "abcdefghi1234FGHIJKLMNabc@@@@@@@@@é", -1, 0, 0, "" },
  6822. /*1007*/ { BARCODE_DATAMATRIX, -1, -1, -1, "ABCDEF", -1, 0, 0, "" },
  6823. /*1008*/ { BARCODE_DATAMATRIX, -1, -1, -1, "11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111" "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111", -1, 0, 0, "" },
  6824. /*1009*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200@A1^B2?C", -1, 0, 0, "" },
  6825. /*1010*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^\200\200\200", -1, 0, 0, "" },
  6826. /*1011*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@\200\200\200", -1, 0, 0, "" },
  6827. /*1012*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D\200\200\200", -1, 0, 0, "" },
  6828. /*1013*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D4\200\200\200", -1, 0, 0, "" },
  6829. /*1014*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@A1^@B2^@C3^@D4@\200\200\200", -1, 0, 0, "" },
  6830. /*1015*/ { BARCODE_DATAMATRIX, -1, -1, -1, "\200\200\200@A1^B2?C\200\200\200", -1, 0, 0, "" },
  6831. /*1016*/ { BARCODE_DATAMATRIX, -1, -1, -1, "@@@@@@@@@_", -1, 0, 1, "" },
  6832. };
  6833. const int data_size = ARRAY_SIZE(data);
  6834. int i, length, ret;
  6835. struct zint_symbol *symbol = NULL;
  6836. unsigned char binary[2][2200];
  6837. int gs1;
  6838. int binlen;
  6839. int binlens[2] = {0};
  6840. testStartSymbol("test_minimalenc", &symbol);
  6841. for (i = 0; i < data_size; i++) {
  6842. if (testContinue(p_ctx, i)) continue;
  6843. symbol = ZBarcode_Create();
  6844. assert_nonnull(symbol, "Symbol not created\n");
  6845. length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, -1, data[i].output_options, data[i].data, data[i].length, debug);
  6846. binlen = 0;
  6847. symbol->input_mode |= FAST_MODE;
  6848. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  6849. ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[0], &binlen);
  6850. assert_equal(ret, data[i].ret, "i:%d dm_encode() FAST_MODE ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  6851. binlens[0] = binlen;
  6852. binlen = 0;
  6853. symbol->input_mode &= ~FAST_MODE;
  6854. gs1 = (symbol->input_mode & 0x07) != GS1_MODE ? 0 : (symbol->output_options & GS1_GS_SEPARATOR) ? 2 : 1;
  6855. ret = dm_encode_test(symbol, (unsigned char *) data[i].data, length, symbol->eci, gs1, binary[1], &binlen);
  6856. assert_equal(ret, data[i].ret, "i:%d dm_encode() minimal ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  6857. binlens[1] = binlen;
  6858. fflush(stdout);
  6859. assert_equal(binlens[0], binlens[1] + data[i].expected_diff, "i:%d binlens[0] %d != %d binlens[1] (%d) + expected_diff (%d)\n",
  6860. i, binlens[0], binlens[1] + data[i].expected_diff, binlens[1], data[i].expected_diff);
  6861. if (debug & ZINT_DEBUG_TEST_PRINT) {
  6862. if (data[i].expected_diff == 0) {
  6863. if (memcmp(binary[0], binary[1], binlen) != 0) {
  6864. printf("i:%d binaries differ\n", i);
  6865. }
  6866. } else {
  6867. printf("i:%d diff %d%s\n", i, data[i].expected_diff, data[i].expected_diff < 0 ? " ***worse***" : "");
  6868. }
  6869. }
  6870. ZBarcode_Delete(symbol);
  6871. }
  6872. testFinish();
  6873. }
  6874. #endif
  6875. #include <time.h>
  6876. #if 1
  6877. #define TEST_PERF_ITER_MILLES 5
  6878. #define TEST_PERF_ITERATIONS (TEST_PERF_ITER_MILLES * 1000)
  6879. #else
  6880. #define TEST_PERF_ITERATIONS 100 /* For valgrind */
  6881. #endif
  6882. #define TEST_PERF_TIME(arg) (((arg) * 1000.0) / CLOCKS_PER_SEC)
  6883. /* Not a real test, just performance indicator */
  6884. static void test_perf(const testCtx *const p_ctx) {
  6885. int debug = p_ctx->debug;
  6886. struct item {
  6887. int symbology;
  6888. int input_mode;
  6889. int option_2;
  6890. int option_3;
  6891. char *data;
  6892. int ret;
  6893. int expected_rows;
  6894. int expected_width;
  6895. char *comment;
  6896. };
  6897. static const struct item data[] = {
  6898. /* 0*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1,
  6899. "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"
  6900. "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK"
  6901. "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG"
  6902. "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567"
  6903. "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde"
  6904. "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO",
  6905. 0, 96, 96, "960 chars, text/numeric" },
  6906. /* 1*/ { BARCODE_DATAMATRIX, -1, -1, -1,
  6907. "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz&,:#-.$/+%*=^ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM"
  6908. "NOPQRSTUVWXYZ;<>@[]_`~!||()?{}'123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJK"
  6909. "LMNOPQRSTUVWXYZ12345678912345678912345678912345678900001234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFG"
  6910. "HIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12345678901234567"
  6911. "890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcde"
  6912. "fghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO",
  6913. 0, 96, 96, "960 chars, text/numeric" },
  6914. /* 2*/ { BARCODE_DATAMATRIX, DATA_MODE | FAST_MODE, -1, -1,
  6915. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6916. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6917. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6918. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6919. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6920. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6921. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6922. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6923. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6924. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6925. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6926. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6927. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6928. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6929. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6930. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6931. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6932. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6933. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6934. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6935. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6936. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6937. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6938. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240",
  6939. 0, 120, 120, "960 chars, byte" },
  6940. /* 3*/ { BARCODE_DATAMATRIX, DATA_MODE, -1, -1,
  6941. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6942. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6943. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6944. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6945. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6946. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6947. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6948. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6949. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6950. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6951. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6952. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6953. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6954. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6955. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6956. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6957. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6958. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6959. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6960. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6961. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6962. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6963. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240"
  6964. "\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240\240",
  6965. 0, 120, 120, "960 chars, byte" },
  6966. /* 4*/ { BARCODE_DATAMATRIX, FAST_MODE, -1, -1, "https://example.com/01/09506000134369", 0, 22, 22, "37 chars, text/numeric" },
  6967. /* 5*/ { BARCODE_DATAMATRIX, -1, -1, -1, "https://example.com/01/09506000134369", 0, 22, 22, "37 chars, text/numeric" },
  6968. };
  6969. const int data_size = ARRAY_SIZE(data);
  6970. int i, length, ret;
  6971. struct zint_symbol *symbol;
  6972. clock_t start;
  6973. clock_t total_create = 0, total_encode = 0, total_buffer = 0, total_buf_inter = 0, total_print = 0;
  6974. clock_t diff_create, diff_encode, diff_buffer, diff_buf_inter, diff_print;
  6975. int comment_max = 0;
  6976. if (!(debug & ZINT_DEBUG_TEST_PERFORMANCE)) { /* -d 256 */
  6977. return;
  6978. }
  6979. for (i = 0; i < data_size; i++) if ((int) strlen(data[i].comment) > comment_max) comment_max = (int) strlen(data[i].comment);
  6980. printf("Iterations %d\n", TEST_PERF_ITERATIONS);
  6981. for (i = 0; i < data_size; i++) {
  6982. int j;
  6983. if (testContinue(p_ctx, i)) continue;
  6984. diff_create = diff_encode = diff_buffer = diff_buf_inter = diff_print = 0;
  6985. for (j = 0; j < TEST_PERF_ITERATIONS; j++) {
  6986. start = clock();
  6987. symbol = ZBarcode_Create();
  6988. diff_create += clock() - start;
  6989. assert_nonnull(symbol, "Symbol not created\n");
  6990. length = testUtilSetSymbol(symbol, data[i].symbology, data[i].input_mode, -1 /*eci*/, -1 /*option_1*/, data[i].option_2, data[i].option_3, -1 /*output_options*/, data[i].data, -1, debug);
  6991. start = clock();
  6992. ret = ZBarcode_Encode(symbol, (unsigned char *) data[i].data, length);
  6993. diff_encode += clock() - start;
  6994. assert_equal(ret, data[i].ret, "i:%d ZBarcode_Encode ret %d != %d (%s)\n", i, ret, data[i].ret, symbol->errtxt);
  6995. assert_equal(symbol->rows, data[i].expected_rows, "i:%d symbol->rows %d != %d (%s)\n", i, symbol->rows, data[i].expected_rows, data[i].data);
  6996. assert_equal(symbol->width, data[i].expected_width, "i:%d symbol->width %d != %d (%s)\n", i, symbol->width, data[i].expected_width, data[i].data);
  6997. start = clock();
  6998. ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/);
  6999. diff_buffer += clock() - start;
  7000. assert_zero(ret, "i:%d ZBarcode_Buffer ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  7001. symbol->output_options |= OUT_BUFFER_INTERMEDIATE;
  7002. start = clock();
  7003. ret = ZBarcode_Buffer(symbol, 0 /*rotate_angle*/);
  7004. diff_buf_inter += clock() - start;
  7005. assert_zero(ret, "i:%d ZBarcode_Buffer OUT_BUFFER_INTERMEDIATE ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  7006. symbol->output_options &= ~OUT_BUFFER_INTERMEDIATE; /* Undo */
  7007. start = clock();
  7008. ret = ZBarcode_Print(symbol, 0 /*rotate_angle*/);
  7009. diff_print += clock() - start;
  7010. assert_zero(ret, "i:%d ZBarcode_Print ret %d != 0 (%s)\n", i, ret, symbol->errtxt);
  7011. assert_zero(testUtilRemove(symbol->outfile), "i:%d testUtilRemove(%s) != 0\n", i, symbol->outfile);
  7012. ZBarcode_Delete(symbol);
  7013. }
  7014. printf("%*s: encode % 8gms, buffer % 8gms, buf_inter % 8gms, print % 8gms, create % 8gms\n", comment_max, data[i].comment,
  7015. TEST_PERF_TIME(diff_encode), TEST_PERF_TIME(diff_buffer), TEST_PERF_TIME(diff_buf_inter), TEST_PERF_TIME(diff_print), TEST_PERF_TIME(diff_create));
  7016. total_create += diff_create;
  7017. total_encode += diff_encode;
  7018. total_buffer += diff_buffer;
  7019. total_buf_inter += diff_buf_inter;
  7020. total_print += diff_print;
  7021. }
  7022. if (p_ctx->index == -1) {
  7023. printf("%*s: encode % 8gms, buffer % 8gms, buf_inter % 8gms, print % 8gms, create % 8gms\n", comment_max, "totals",
  7024. TEST_PERF_TIME(total_encode), TEST_PERF_TIME(total_buffer), TEST_PERF_TIME(total_buf_inter), TEST_PERF_TIME(total_print), TEST_PERF_TIME(total_create));
  7025. }
  7026. }
  7027. int main(int argc, char *argv[]) {
  7028. testFunction funcs[] = { /* name, func */
  7029. { "test_large", test_large },
  7030. { "test_buffer", test_buffer },
  7031. { "test_options", test_options },
  7032. { "test_reader_init", test_reader_init },
  7033. { "test_input", test_input },
  7034. { "test_encode", test_encode },
  7035. { "test_encode_segs", test_encode_segs },
  7036. #ifdef ZINT_TEST_ENCODING
  7037. { "test_minimalenc", test_minimalenc },
  7038. #endif
  7039. { "test_perf", test_perf },
  7040. };
  7041. testRun(argc, argv, funcs, ARRAY_SIZE(funcs));
  7042. testReport();
  7043. return 0;
  7044. }
  7045. /* vim: set ts=4 sw=4 et : */