summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pst-barcode/doc
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-08-24 03:01:23 +0000
committerNorbert Preining <norbert@preining.info>2022-08-24 03:01:23 +0000
commit2fcb60fa8843870d9f3a90987498e5b775402258 (patch)
tree7db6e32b73c582239b1080a4c5272c8ec51c21d5 /graphics/pstricks/contrib/pst-barcode/doc
parent0fab672d8f0c2d456fafd111ea77c2123075d653 (diff)
CTAN sync 202208240301
Diffstat (limited to 'graphics/pstricks/contrib/pst-barcode/doc')
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/barcode.jpgbin0 -> 143137 bytes
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/datamatrix-4.eps389
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/dotcode-1.eps427
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/gs1dotcode-1.eps769
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/gs1northamericancoupon-1.eps494
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/swissqrcode-1.eps1834
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/images/ultracode-1.eps230
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.ltx27
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.pdfbin1234227 -> 1225072 bytes
-rw-r--r--graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.tex2835
10 files changed, 6249 insertions, 756 deletions
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/barcode.jpg b/graphics/pstricks/contrib/pst-barcode/doc/images/barcode.jpg
new file mode 100644
index 0000000000..bce5444f64
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/barcode.jpg
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/datamatrix-4.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/datamatrix-4.eps
new file mode 100644
index 0000000000..27c381c7e7
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/datamatrix-4.eps
@@ -0,0 +1,389 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 162 18
+%%Creator: Online Barcode Generator 2019-10-29. https://the-burtons.xyz/barcode-generator/
+%%CreationDate: 2019-10-31 15:36:08
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2019102900 30005 33214
+%%BeginData: 7 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+P1OerF_-`n01TSk ATDK p010/ iAS5q %H '6m E30Ia ,!KmJH
+23Ji?3%mj@F*(i. @qA VbE+L \DATV m" @r# drB 9KiQ
+P'&Es@:O(aA79M! @<ls? E+ OHE04 AmA@ <l s?E +OH\< K_S [F_`U >D_?
+-CEcQG7F`MSBDD# CBBlJ $S4 tf9 3FCf *' Ed8 d<AS,X oA TD@'Df p)1
+AWh2!hZ~>
+% Category/uk.co.terryburton.bwipp 0.0 2019102900
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2019102900 39086 38828
+%%BeginData: 9 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23J D%Ea` [' AS# n&D fU1I
+,\;":DfV")04f0E DfTQ0 Ao EhrP' A6`E cQ )=P !1O1E cQ) =DIIB nP!5
+ %R,\;":DfRL@Df '?"DI eoM P'A 6`Ec Q) =05 b?FATD g0 EZfIEF _-_
+\P+mAf%[&V$Ea`[ 'AS#n &Df V"# P %64 gCG '+8 /p(ZFE d; ,:Ecc5 ;/n
+0$=E,Zq1AS,XoAT D@'Df p)1 AWh 2! 3A 5Gb FDt YuCM@ [! P.H"' F`V
+,9E+*6lBl7R3P#M ~>
+% uk.co.terryburton.bwipp/raiseerror 0.0 2019102900
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2019102900 90599 89917
+%%BeginData: 80 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO ps'bA Su? nFE2) ?H\`
+B!23JD%@<-"%P!5 $b06_ ,@F D-I 2Ou" b) ASG djFGKs \1 G<3GEa s$(
+DfUjAF`)83FHSF5 @UWb^ B6% p5D I d6q Ci= ?S" a+^(AT X( k04Sp: DfT
+]'E/k*EDKBB2Ou" b%Dfg )H+ D,% uF (L Lj0 55< >F)Z/ 2@ :Y/oO u"b
+*DJO<4Eb/ZiBSZY O1G< H[ CN FH 8AR T+m L]E So05
+5<6Cis9"FCf]=+D ,%uF ( LL j0 6DG \+B osoO u"b5A
+U&<,Des?4NWjQCF (KHV1G <i] G ]\1 =C h[O" NWj QCF(KHV1G< i]G]\4>Ch[O
+"NWjQCF(KHV1G<i ]G][P9 DKL m D6Z7 *fBk ;=J 1G<i]G]\"@ H=_m>Ou"b5A
+U&<ADe<U&ATW_.O u"b5AU &<B De<U &ATW _.O u"b5AU&<0@ ;p:D!0T,k@;
+L%-AU&<W!0T-HEb BH?Ou %NL8 T/Qi H]g1 5P" @<NBk2=!+E qO1FD-gjOu"
+b)ASGdjF<G7.BkM +$OtV tS04J @1@rH 1%E Zeh"Eas$(D fV!mOu"b#@:
+O(cEc6)<A7KOoDf Qt0@:O( cEc6)< A7KOo DfV !mOu"b*DJO <4Eb/Zi+DG_
+/F)Z/2@:YNSOu"b*DJO<4Eb/ZiBHV#,CNFH8ART+_OtVtS055<>F)Z/2@:XO(Bl7^-E,oMuA9O
++hOu"b5AU&<,Des?4+EV1>FCT6*DfV!mOu"b5AU&<A@;KXjDBO%4G]\1=Ch[O"OtDhQ06CcMFE
+q;2BkM<+FCf]=H!tN'B5WkaOu"b5AU&</Df0Y>FCf]=AoDR/OtDhQ06CcMFE;/BAKZ)+G]\"@H
+=`6mOu"b5AU&<ADe<U&ATT&:AU&<ADe<U&ATX(gOu"b5AU&<BDe<U&ATT&:AU&<BDe<U&ATX(g
+Ou"b5AU&<0@;p91FCf]=B45b#OtVtS04A[=FCf]=+CT).FCf]=OtDhQBl7^-E,oMuA;C5KD0mp
+MDJO<4Eb/ZiBHV#,CNFH8ART,41OYEcBl7^-E,oMuA;C5KD0mpMDJO<4Eb/ZiFs(L:CNFH8ART
+,41OYEc06hbTATW8AE+sQAP&-9^E+sQ<P!5%%I?G)'1G<6NATW8AE+sQAP&-9^@prk\AWf6?99
+KF+Oq*X204SsDFF001L]ilUL]ET$H\_c[!Kr4WBm=lcCm"g/@:Nt^P!4['Or9EUL]iP6P)#3@P
+'DD%P')q1P')29<IL#?Ou"b"@UiqqL]im;L]CY8"c3/@LN$sPG`lm+!KoE]Bm=]^5)99'9TfI?
+Fbg-Us,r.VBm=]^5&b4\G`i)`!g66?!g7\3H\_ce)2Ku0!Kq\jFbg']!I^,&P')29%[&V$EbT0
+"FF,-@Bl]"1P&5Pj+F,)?BlY>+E-67F>9J/5Gp$C@P#O)Z+F&\COo^_%04\d;L]NYpI?G)'1G<
+9WGA_aMA8-(?!g7DIGT_8SA8-',@rQR4+Bot5+F,)8I?IP_Gp%Bg!KmJH1G<9QEejd[1OYDrOu
+"b-AS-%2+Co2,L]ilXH[$ZY+Co2,+CfA5F<Fd1GT_8S?%%l806eUaL]N[<Ou"b%Bl]"4Ou%NL%
+[&V$F`;[MA8-(?#a0%OGT_8SA8-',@rQR4+Bot5+F,)8I?IP_Gp%Bg!KsFF1G<9QEek!a1OYDr
+Ou"b5Ea`HhHS9Z-5*@]TG`k7R1G<9QEZfU_!KmJ/L]NY>G^3q5FGKs\4aVtjI=$bQI?ITn1G<f
+o+F'&*06;C]H'0s:F(B!*+Co2,Ou$r`Ebg"EGT_8S@:E_WL]Mjc30H7]">DM`0p4\_5*@mc">D
+Ma0p4\_5)ob#0JP;F4d'iKEdNslEbT0"FHSn;P#RT(OuSI)0JG48P!+slOuSI)0eb=9P!+slNW
+_'k0eebRP&c_+H]iM^Dg-)^5^eepOuSUaNW_'j0JJYQP!5$gNW_'k0JJYQP!4m/0ek@:P!+tKP
+&bo4F_kW$FHSn;P#RT(OuSI)0JP78P!+slOuSI)0JP79P!+slNW_$j0enhSP&c_+H]iMoE0<J7
+P#RT(NW_'j0JS_RHXpi2L]W`&H]iMfAS-%I5^e!BF`M2/BQTD&I?ITYHXpi2L]NZ%H]iM^Dg-)
+^5^e!BF`hYd5^eeqI?ITYP(S!%F*Nj2Gp%0RP!+s2A8-',F(B!*P!+s2H]gXBP#QjmAWe!q$'G
+[Z5*C&:Oq*X206:]H@;^@#Des?4HS8fFH"1c/DfV")Ou$NaH"1c/DfV"ML^'#*H]A@o+<VdL+<
+Wk(#a2$I)3Qt8!F]kk@rH1%Eft^216OkKL&h7:2LU`[P+@#a<+0Zi@rH1%Efsmf#a.>tNX@lk+
+<VdL+<VdjL^K<AOr9EBL]Lq%H"1c/DfV"dOtr1bH\MP#Ou@`O8Wo9cP#Qjm%[&V$A9)+&CghU#
+EdKHYBm=];EbT//E+sQ<Ou"b1Bm=]^5*@]TE+sQ<+Bot-Bm=lY!g3S2L]DjdK89MHBm=kFE+sQ
+<P%'4JP,Wea!0TNbBm=]^5&b4\G`ka`!g7\^!.C#$E+sQAL]W_?H\_ZMP(R&'1G<]]G^(?MBm=
+lY!g3SI1G<]]G^1ENBm=oZ!g3SI1G<6H@q]Er>9Im!G]T$WH\_ZMP(R&'1G<]UFD,_<>DN98!H
+;atH&)NbWI$:5P!5$bL]E53E+sQAL]Wa=HS9)r5*@]TCER=6C*6qo@q:`YCQ8NO0JG5E4_p&\0
+eb:9P!+tKH\_rA+DN$/B4Z1@!0TKlBcq.5FE1f"AUT_@I?IQFNW_'k0eebRH\_f=+DN$/B4Z1@
+!0TKlBcq.5FE1f"AUT_@I?IQXP":"a86qB705tWMGT^s>G^,#GP,XU#05tWMGp%'?G^5)HP,XU
+#P&G;JFD,`B06!(<Ou"b-ASrW0P%'S1E$/t.DMS=VWKKo;!g7\FL]ET2OogehL]E53Ch7L?!Ks
+F/056S5Ou%&"BnueQ!Gl=bP%p.QOogehL^&\7P)"hsP#uF9CNFH8ART+_L]ilCL]iP6P)#34H]
+eDXH]k@VP#[;@L]NZoL]ilCBl7^-E,oMuA9Nb3P$!MCM#WWnP#-Lg!I]<XWI9q0L]iP6P)#2aE
++sQBP!5&.BnubP4aW?-I=%,eI?ITYP":`OP')q1P')q1I?I0b68*:lG]P!HBm=];EbT0L1OYDr
+Ou"b%Eaa0.@<lF)A8cR2HS9>PG]ReDBkJQ-Bm=]^1G<]]G]T$3Ou&8>L]E53E+sQ<P%'4JP,We
+k3,iSVG`lepG`k7R1N7&QG`krXH'1@S1O($f+F&0EATW_/P!+/:ME_(@!0RA%Bm=nGH'5.a56(
+Z`P,XU[G`"]c!!&/_E+sQB+F0-LME_(@!0X==56(Z`Bl7^-E,oMuA<NpJ!/:MfOp-8s<.0p#P!
+Ug@Bm=\AE+sQ<DfTQ)Ou%NL%[&W2:+p=!CNFH8ART*lBl7^-E,oMuA;C;M2NfjLBl7^-E,oMuA
+8!*"DJO<4Eb/ZiBSZ_Q2NfjLBl7^-E,oMuA9K)0DJO<4Eb/ZiG)-3_2NfkZ.$C]VBk2=!+E2%>
+G`jt@8<Re&ASGdjF<GO:G^5H1Le*\FP)G+rL]ETRE+sQAL]ETJE+sQA+E2%>H'2Zn!,uXsH'2[
+#(1L]^CM.[+F`(`"Des?4NWjQCF(KHVD0qF@@UWb^B6%p5DId6qCi=>:F(KH%DL#`1Ci=?W6BY
+&kP#Pq0Ci=?2@;q51F`)83FHSe604Sp:DfT]'E$.8*L]LsnEas$(DfQsa5*@^MP#Pq0Ci=?2@;
+pQ9F(KH%DL#`1Ci=>ICLqdS5*@^++E2%>F*f$FAU0G%H\_]NH\_ZMP#Zpn8R3HLDfg)HHQZj>@
+<ZNrH"D#,Dfg&KHQZj>@<ZNrH"D#EP#Zpn8T\NgFCT6*DfUjAF`)83FHUKfFCf]=@rH1%EZfF7
+FCB'4@rH1%Eda*MBl7EsF_#'*AU&<D+EV1>FEh51BkM=D"a+^(ATX(uFCf]=H!tN'B5W_5F`)8
+3FHSeM"CZ+gFCf]=NW>5*Op$+bF,0gZ1G<?XNW>4uFEhnSH[V&KL]W_WF-:C'5%\\qD3ApdL]W
+_W06<:?Ou"b'DN[2H1QmcHH]iN7Fa]EQP&$5RI?I0MHZWhDFCoH/F<G[:G]\"@H=`8"@;L%-AU
+&<W!0TKl06DG\+Bot1G]\:g!0U!%I?I0MP"ArB1G<ikFE/LGG]]*XP,4<tL]E53FEhnj@Yb&JW
+I'dfFEhnj5*AQ\F*)GY",Hu@LQZn1P":"J06D8WEZee,FED)=FHSG.P#ZUFFE3ORL]ET$H\_ZM
+H]h-eDhnCL!0V,X!AJ+oCia0N&X%3k"Gd)ALQZeCFcpm19p-VP:gn'UFB!O)AWgGJOruDS@;0V
+$<-`FoP"UT4P!+5?AmoLsAUT_AOruDVFE2;8AQNSVFD-hFOp$,p+>6Z8Ec5`)=(u2eBTc#E!g5
+Ht!0TO/+>63&DKJT]FE2)?P"UrsOuSV@P!5$gP&-9^F)c5BOo]uo<.0p006CcMFCB6#ASuUQ5*
+@]TFCf]=GA1T0BHVD<FE3PAP'(kfFE3ORL]N[<FCf]=B45b#P&-9^Ou"b5AU&<AE,Te?FCf]=G
+].2+F(KG9GT_*>G]\.DA9;LJWJCV=2Ne*(1N[2QFEh51BkM=D"DhX]FHSe606CcMFEhbCF!,R9
+G]\1KAnH*qFHSG.P#QO7G]\1=Ch[O"NWjH;B4uCM4aSi(AU&<AE,Te?GT_*>G]\1KAnH*qFHWV
+FAU&<@Bk2=!P,XU#I?IQOAU&<A@;KXjDN4s?AnGjjAos2!HS9JPG]\1LDf[%CAU&<@Bk2=!+EV
+1>FEh_9AohO*Oo^_`Ou%NL<-2\rFEh51BkM=D#]F<eEbT0"FHSe606CcMFEhbCF!,]MFCf]=G]
+.2+F(KHV!Ko6eP#QO7G]\1=Ch[O"NX'<AF*),.H'1=4AU&<@Bk2=!+F'&]Op$+bFCf]=G]7SBL
+]ESo06CcMFD#$$F!,]MFCf]=GA1T0BTf?:F*)Gc@Yb&JWKK0&1OYEc06CcMFEqhDF!,R9G]\4L
+AnH*qF<G[:G][A8@qBP"Oo^@>Oo^_`Ou%2kG]\4>Ch[O"NWij#Dg#]T4aSi(AU&<BE,Te?FCf]
+=H#I;,F(KG9E+sQBOo^@>Oo^_%I?IQOAU&<B@;KXjDN4p2ASuU$EfrS406CcMFEqhDF!,R9G]\
+4LAnH*qF<GO:G^1ERAU&<*F(8d!FHWVZ!g5I)!Ko6eP#QO7G]\1LDf[%CAU&<BE,Tf\CNO-4FD
+#$$F,0g<F*)Gc$@S(;I?IQm9p.MbOq*X2061WAD..O,Bm>e#P%64gCG'+8/p(ZFEd;,:Ecc5;/
+n0$=E,Zq1AS,XoATD@'Dfp)1AWh2!3A5GbFDtYuCM@[!P.H"'F`V,9E+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/renmatrix 0.0 2019102900
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp datamatrix 0.0 2019102900 205515 224321
+%%BeginData: 235 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO uP+8A Su? nFE2) ?OuP
++;CG'+8/p(ZFEd; ,:Ecc 5;/ n0$ =E,^ uo P'E -!04\L 5@ ;TFpEb TcF
+L_Q"0Ops'_E-,f4 DKCt) Ou" b#@ < ,jr A7^ ofO u"b%Df 0Z -Eaa/7 Amo
+LsAWei&@rH1+D/O EN!0T ,kE c6/ CL ]E So0 4o- CD..O H# '4d,@ <,q
+B1G<o_EcYr5DN4m CDKB B2 Ou "b 1@< -F# +D, %uF(
+LLj05t??F(Js$@j #AlC i a0 N1 G<< W@r GmlD J+t4@
+<H[1Ou"b.@;0Op@ <--+Am oLs A Wei &E aa/7 Amo LsAWei&A8Q ?u+D,%uF(LL
+j04\d7A8Q?u+D,% uF(LLj 055 K GA8Q ?u+D ,%u F(LLjDfBf4 Df0WZY:js=E
+bTE(FEqh:P!+/J! Ko='%< $3- Bl@m 1H]k FA@ ;L!rP!+/T5 ^eepOuSV6P,
+4<rNWD;+NHB2`AW f3'Ot Dh\P ')pO Ou%N 5Ot CcrF_-^lI? ITYP%BdtOuY
+16E-,f4DKCt)Ou% NL<,Z _tBl@ m1H]g 15P "Bh.EcYr5D N4mCDKBB2P&
+5PhATDj+Df1R9G` n&LFY@c RGB8p2 Ou&8D 04S p:F_u#;P!5 $bI?IP_@rH1
++D/OD;@rH1+D/OEX/<VeBEc6/C+EDCEF-8);1N6cCF(K\OD0'>4@UX:eDe*FB@ZmRN1G<L!!0T
+-I@<,jrA7^+J!FCqKH]g@*F(^Y"C6CcDH'2WOOo^@>Oo[4NP!5$bP')pIL]E55P"_#iD0'?Q5&
+,lSP,XU.P'E-LP%'4LP,X6>P!5%&I=%,:D0'?Q5&-6EP'N4"C6ATNC6CcD1G<3GEas#uAKYi2B
+8?P&P"_#pP!FGY<IL$AI?IP_Ble3'D/s21A8Q?uOu"b.ATVs,@ribs+BsX/L^Jq=L]N;8L]Ld(
+>DN]D%#=q?!Jgu:!F6gPL^o4NL]N;4L^Jq=>p*@-&;UmR!Jgc4%#=pi+BsX7L_>LEL]N;AL]Ld
+(>DNuL'SldG!JhAE!F6gPL_bd^L]N;4L_PXG>p*@-(l0#b!Jgc4(l/2u+BsX?L`2'ML]N;OL]L
+d(>DODX+G^)T!f/+X!F6gPLa7d%L]WA6Lan2]>p*@-.#9:-!f-o60Sfa8+BsXQLb+>`L]WAlL]
+Ld(>DOth0Sfdd!f07#!F6gPLbsoEL]WA6LfB03>p*@-5_q[]"Gd2:E/4R$+BsXmLe*=)L]iG4O
+GF$F+BsXuLerm1L]iG4^k`,!+BsY(LffH9L]iG4i.qMA+BsY0LgZ#AL]iG5&;UHp+BsY8LhMSI
+L]iG5:l#<]+BsYHLj4^[L^&S7R"trP+BsR#KSBJ[L^&Y>L&pe"#[JQWL&d<i!0E!@L^&S8CkrF
+(+BsX-L_>LEL]N;:L]Ld(>DNQ@+G^&S!f.5?!F6gYBl7HuEb-A-F)PT+Eb1DSHWu:3LbOVcL]W
+ACL]Le0P#Pt+DIdU)AKY].De*^*AWh(\>DNQ@5_oGs"Gd\H!F:,:<,$DlA8Q?uHQZOK#`)<5!J
+gl7(5MusI?IQDF)PT+Eb0S?>DNQ@@#+i>"Ge%R!F:,:<,$DlA8Q?uHQZOK#`*_]!Jgr9+G^&(I
+?IQDF)PT+Eb0S?>DNQ>!0E!;L^&Y\L]Le0P#PYA%#>gX!Jgc4%Yt-k+BsX1La7cWL]WAFL]Ld(
+A8,plD/s21Ble3'D/s3NEdM#H%#@0)!Jgl7)i+N#I?IQDF)PT+Eb0S?>DN]D=GR!6"Ge=Z!F:,
+:<*P.iLa7cWL]WALL]Ld(>DNiH0Sfac!f.hP!F6gYBl7HuEb-A-F)PT+Eb1DSHWu:;Ld6asL]i
+MZL]Le0P#Q.:De*^*AU>P(L_PXjL]N;5L`D3O?%%l8Ble3'D/s37+BsX9Lb+>_L]WAVL]Le0P#
+Q.:De*^*AU>P(L_PY1L]N;7Lan2]?%%l8Ble3'D/s37+BsX;LbOVcL]WAZL]Le0P#Pt+DIdU)A
+U>P(L_tpjL]N;5L`D3O?%%l8A8,plD/s37+BsX=La7cWL]WAUL]Le0P#Pt+DIdU)AKY].De*^*
+AWh(\>DO,P0Sfac!f/:]!F:,:<+K]\A8Q?u+DGn8A8Q?uP&bnRL_tq5L]N;7Lb=Ja?%%l8A8,p
+lD/s37+BsX?L`hKSL]WATL]Le0P#Pt+DIdU)AKY].De*^*AWh(\>DO2R.#7n[!f/1Z!F:,:<+K
+]\A8Q?u+DGn8A8Q?uP&bnRL`2('L]N;5Lan2]?%%l8A8,plD/s21Ble3'D/s3NEdM#H)MgY7!J
+gl715Gs:I?IQ8Ou"b6Ec6/C+EDCEF-8=4F^o?+F!+t2CisT4F-8=4Ap%p+@s;u:>9I471Mp]FE
+bT$)HS96!5*@]TEc6/C+Dlo7P"Uro04Sp:F!,=U!Kp*=1G<c[B4rE)L]W`4Ou"b3AS60/D28:W
+99M(aEcY`7+Dlo;P"Uro062,CC`mSN"d2NA1G<TcDg-7FEc6/CL]VU.B5!HEP,XU#05Y3;Ci^_
+/DesKN!chjbG*6[)WKK%jDI[m3+Dl.;GB4mD@rH1)P&,p[P#?=A@s=*8Ou"b0CLMK2FE2M8Ou%
+6$Dg-8Y!0V2AEc6/C+EDCEF-:C'"FDe?CLMK2AmoLsAWeitP#QR6DesKN!0V2A@rH1)+Cf>+F-
+:C'"FDe?CLMK2AmoLsAWeitP#Q%3Ec#6,NWsQEF^]<%P!*i(GB4m:DesKXD3>$K05kW7Gp$^-C
+ia0N1OYEcAoD^,@<@M9Eb/a&@;]^oAWf2sDg-7F@rH1)P!+s2HS9;Q@<iu-@;L!rOu%NL<,ZP\
+H$_2VF_kl(GB4m2+D,b4Ch%[1OogehDI[m3+C1-dI?IQXP"@<EF_u/1D.@d2+BsR)(41c`&:K^
+o?'7!UF_kl(GB8*RDKTf:ASkq$F-8_C!KsF<!Kq\UP"CB4'SudF!.-A5P!5$bDKTf:ASkq$F!,
+1[98EV3D0p/CD/s3)@s;u:Bcq;9D/s3)@s;u:BnueQ!Kp*3!KmJHG^Y`SI?I-A@<[&OASu!rA8
+,poNWX<1GEOb1P#Q"1@rGmlDJ+t3Eaa0T4aShlGB4m9@<,jrA7^p5OpR:-0564BOu"b+L]ESoH
+YFU3@<,jrA7^p5P!+/T5^eep04T2K@UX:eDe*E%BnueQ!Jgi@9Tgri1LkWM+DN$/GER2(Bcq,G
+"HieK1G<JcC5;nR!Ko6eP%?:VGB4m:GB8Q?C6D8R1OYEcASu!rA8,poNW`d5FDm=*HS95E@k]c
+MDf'G9AmoLsAWei&D.-p.2IgZBE$/b$Cia0N1Lad5@rGmhP%'4RP"L(1@<,jrA7^PsL^0):OuS
+I,>:D`W0Jsl64d&!h#?rW@*\]JmP!+tK@UX:eDe*E%@UX:eDe*FB@Yb)KWJCV=9TB/q"Hkp2"F
+FTdEas#uAV^MQ98GHg4aSi!@:LuK@rH4'I=!Va@:LuL@rH4'I?ITPEckrV1G<3GEas#uAKYGjE
+as#uAV^S#@<,jrA7^p5L^B6DP"_#pI?IQXP#O)D@<-0qDBNCsEas#uAWgMc1G<?X@kif>Ou"b1
+Ec5THrfT&jD(mi'rK8riD(ml(r/rihAo;+%@;L!-4?SW,7SZ<*Ao;*5NW`0V:IfAEDeG(59gM-
+(D(mi-"AM0L2Jk-++?huP1G<TdB-:YlEbo<)OpR:-0564BOu"b+L]ESoHYFU3@<-0qDN[/0P!F
+GY<%h`p@<*K"@<,jrA7ZltP"UroE+*d.AS,gi+Cf(nEen%b4d#q^+C\c"Ch7L?"HoaIAs*:D@U
+X:eDe*E%BnueQ!Kp*3?BT/P04S[(EZet3@s29sF!+q#Eas#uAKY]C!KmJ>"HlHA99M(aBcq,G"
+HieK1OXU'Bcq,G!KmJH1OYEdI?IQHF(ZV1+Cf(nEftZ#Bcq,G!KmJH1G<JcC5;nR!Ko6eP%?:`
+F(ZV4F(^:/C6D8R1MpQ10K!?YD/ahTD0'>4>9Ic:2'?aWB9E=ZF^:.dI?IQH@:LuL@rH4'HS95
+WB-:D$D(mjjD0'?Q!g7\3Ou%NL<%i*0B5D-s+Dl14P%'S105O"3qiW`gCdNsSOu"b-=GZd91G<
+QDM"m,h05O(5pQ@<cF`)#Op6%3bF('$,M"Qoe06M>JFGTRP1G<f]F>8UCOu"b4Aooeanrbd^F(
+TMMM"-Wa04eX-M"$Q`05t?1M!pK_06M/K@s<Y-rfT&j6$?[QF!*S-L]E53L&caNOuS6uOo]uo8
+8r!JL&cd\!/LZ3@sa@uL^Jq>P,4<qNWLmgL]Wa9Or9EBL]WA7P$!lVP,X6?M#WWnP'N3SL&cgg
+!I^,%L&g=>+DaCfCdK7VDIYCDF('$,+E2@>B-;><Aoo/40Jsti0K(%i=<MEZ+DaIhARfEs?$h_
+uL]NY>OuRlQ8Wn3[5*@]T6$?[QF!*S-+@10ZCiaqG>EV0UI?I/c5*@]T6V_f5Ci^^]4<S]WF>8
+ROF(TMLL]MR/F>J^SL`hKULbOVcLcKgF3/B,KWI9q#Ld?gtLg#.g3/BARWI9q#5!G,c01.I;@;
+L!-4?SE"L]N;RH]g@:P"7c#Ou"aY13R)BF!*S-L`qQTLbF+<3/A`@WI9q#LcU=mLd6<M3/B)JW
+I9q#Lg,Z9LgPLl3/C"dWI9q#Ao;*5L`:JXAorhM5!G,c01.O=@;L!-4?SF-L]N<]H]g@E@$7L;
+P"7c#Ou"aYG%#3.+?Vb/6V_f5CiaqG>EV0UI?I/h0m6uAF*f$6P!26.G%#3.+EM.:0p51m5$`T
+"8OG7V@;L"3+Bt!m6V_f5Ci^_?Aooek99MJEI?I/h1Nm2CF*f$6P!26.G%#3.+EM.:1QkCo5$`
+T"8No>$1G;^&G%#3.+?Vb/F(TMKL]DL.F>AXQF(TMML]WATL]`GeL]N;lH]g@E/<Zu\P":C;L]
+N<XH]g@E;j+,.P"7c#Ou"aj0m6uAF!*S-L]E53L`^u,3.6r\5!G,c02s]M@;L!-4?SECL]N;bH
+]g@E+d/gQP":BiL]N;sH]g@E/!?l[P":C5L]N<=H]g@E7?XWuP"92&@kicYF`V/:L`S`DOu"aj
+1Nm2CF!*S-LgZ#=Ld?gtLg#.g3/Bh_WI9q#LjOpYLjsc73/Ct*WI9q#5!G,c03!+'Ci^^]4<RT
+uG%#3.HQZOU5$`T"8Q7Ef@;L"3+Bt!m<).UFCi^_?Aoobj99MJEI?I0$13R)BF*f$6P!2i?G%#
+3.+EM.:16P:n5$`T"8Q7Kh@;L"3+Bt!m<).UFCi^_?Aoohl99MJEI?I/c5*@^V!.]k+L&h7#05
+6S5Ou#CI@;L!-BcpV&6$?[QF!,UHAos2/Oogeh6$?[QF!,1O!.^63P"Ur>P'(&nGXHX_Ci^_5+
+BosUG%#3.+E_a;FHT:[!g7[nG%#3.+DHQ1J<Hmp99K@>F^:/T<-D\dF!,0>>9Hmg@;L!-F`V/:
+P"Ur>P''`I@;L!-BncV<P,XU;Oogeh?'9G\P"76.G%#3.+?VcB%>Y"?.Yn+]5)98r+G^,U0Sfa
+c3I?oKLb+^gI?I-W6&5Pt>'lDlLbk3nI?I,b5*@]T=E\+hF!*S-+BWeqCiaqG>EV0UI?I/c5*@
+]T7<W*UF!*S-Ld6asLgGFk3/Bh_WI9q#F`)#O+,D%q!JiseOuRlQ83T5#1G;1?@;L!-4?O`TG%
+#3.HQZOU5$`T"8No>$1G;(<@;L!-4?SE"L]N51s*KngI?I,b5*@]T6?ZdRF!*S-+@:6[CiaqG>
+EV0UI?I/c5*@]TASu"$@;L!->9H4T@;L!-6ZumSF!+G*@;L!-=E\+hF!*np@;L!-6?ZdRF!+bO
+1G<WgD+#LN+Dl14Ch7L2L]DjdK89M5Ou"b/AU&<!FCfK0+Bot*F(]<#DL70>I?K5;-P'LG1G<W
+WG]Z]!DHJ#c+Dl14Ch7L2L]DjdK8(`a?'7!\F(]<#DMS=VWJLS1!.-A5P!5$b04J@1@q]:k+Dl
+14+DI!3Ou$QUEarckEelE48n)4L@q]:kLcLW,Op$,LF_sMhBcq;9D+#L\L]NY>P"UT3Oo^_jI?
+IQ=@<,jk@<./5P!*8_EarckEel3.4d'hp@<,jk@<./fP!+tKHZ!D>FBEWrEbuq5L]ET_I=#jCG
+][&0ATDW1Bcq;)G][&0ATDW1BnueQ!Kp*3!KmJHG^Y`T=E\+hF!+q#EarckEfsgnE-lJ6G]Z]!
+DHJ#qL]ET_I=#jCG]Z]!DHJ#q+Dtb8FA?al=<M=6!KmJH98EV3!Kq\UP#Zpn82"jlG][&0ATDW
+1>9IfpG][&0ATDX7OuS1D&<]k:P')L,&:K^@I?I0-Ou"b/AU&;lDf/Z">9IfpG]Z]!DHM7K3//
+dlP#-LgFbV7TI?IQXP"ArB1G<H`7!g%dBOPq;0To%<BOPq;3Kdg6"FZFCOu"b*F$k9s6V_f5Ci
+^_/BOPqE@""1JOu"b*F&[K/<).UFCi^_/BOPqE@""1JOu"b*F'*c3=E\+hF!+t+@<.N=I?G)'1
+G<H`7=-.GG%#3.+Cf(nEfsgYOq*X2055Jr6$j_aBOPq;J!*WVOq*X2055Js:4"*nBOPq;!0UrB
+Oq*X203E=-Ec"9[EcZ>LOuR>jG][&0ATDXN5*AR%5&OqVFA?al=HYk299Nn8Oq*X200tBoOu"a
+YL]NYp03!`/Ou"anL]`er01C["Ou"aXL]rqt05PQFCNXTC04A@H!Ko5l@q1;rOu"b5@u(2L1G<
+u_L]W_q04eXL!g5>m@Uk9\&-)]n1Mq&@AKX:%4aShj@u(,J1G<6JL]NYp06C][!Ko5lG[lO1Ou
+"b&@u(/K1G<3IMEda6!0T-dP#Q::A7ZlNP!+.F@q1;pOu%NL<,HPaAKXs84aSi(@u(,J1OYEcD
+/Wrr+BXdiHS9VRL]ESoI?IQHDe*E%7?Tf\04eXL!0T-dP#Q::A7ZlMP!+.F@Uk2oOu%NL</:R%
+D..-pD..I#+DHW`P%Kj[HUEr]I?IP_CPVtR1OEgYCQ\^8F(]<#DN[/0>;'Dp04SKFFCQtK@kVD
+'04JE6?$h_oP%9^eOu%NL8T\uqAKY2"@q-X'@j$#++D#%*@UgNdHQZa,P!5%;Op$2r8UEad5^e
+epFE2M8+Boss@j#8k+EV*9G[hk-@j#'(+C\iD5*BN@"FZG)HU<l\I?IQOEckq9>9I?a+Cen(FC
+QG<@j#5j+C0=:ARgleP%Kj[I?I0K7?ToaP#QODF_)\"+CSb&@q-X+@j#>m+C\h'?$d]9A!0$=A
+s*:FP"C""P!FGY<-3/'AKY2"@:LEi@j#l'+D#%*@UgNdHQ[QCP!5%@Op$2r8UFR&5^eep6]s]_
+P#O)EBOPp(D0'>4Bcq2S!Kp*=1G<0H+CSb&Blc[hL]N;5OuAI(I=#[L76u9`&;UCN!I]<X&;U@
+M!I^,2I?ITn1G<6J+Cen(BlcXgL]WA7OuAI(I=#[L76u9V#`&SG2Ne)hH\_f\"-PR*!I^,2I?I
+Tn1G<i[+EV*9Bld7#L]WA7OuAI(I=#[L76u9V#`&SG2Ne)hH\_f\"-PR*!I^,2I?ITn1G<u_+F
+ %B=BldC'L]WA7OuAI(I=#[L76u9V%>Y+L2Ne)hH\`#b"-PR*!I^,2I?ITn1G<<L+D#%*Blc^i
+L]`G9OuAI(I=#[L76u9V&VpRQ2Ne)hH\`,e"Hk[+!I^,2I?ITn1G<3I+C\h'Blca=H\_ff!I]<
+N!KmJ3P#[Z$CPW+V8pbZ#F_)\"+Cen(FCQG<@j#>m+C\h'?$d]&@u(/K!KoX0@?LbAP"C!dP!F
+GY<+9?n!KmIlA!18I6BXT^P#QODF_)\"+Cen(FCQG<@j#>m+C0=:@Uk2pOo^_0P%Kj[I?I0K6B
+XT^P#QODF_)\"+CSb&@q-X'@j$#++C\h'?$d]*@u(/K!KoX0As*:FP"C!hP!FGY<-3/'AKY2"@
+:LEi@j$#++D#%*@UgNdHQ[E?L]NY>P!5%@Op$2r8UFF"5^eepFE2M8+Boss@j#8k+EV*9ARcil
+@j#'(+F%CP!KmJH5*BN@"FZG)HWZFrI?IQOEckq9>9I?a+EV*9ARcil@j#'(+Ceo;!KmJH5*BN
+@"FZG)HXgP.G[lnKHUEr]I?IQ>@j$#+P!+/++D[,@L]NY>=EJ+pD+85[F*)aO=HYptHUEr]I?I
+TYP#Qjm<.0p/05D\GL]NY>Ou%NLAUT_oI?G)'1G<0IA9;a"GB8+o3+I/RP!3WD5*C1EC6CcD@V
+V&,Ou%NL%[&V$ASu!DH\_]LDKTea+DI!3L]W`3H\_`dV33fo!,Zdi+DI!3P'E-LL]M@6B-:oE!
+KmJH99ONcG%#3.P!5%%@:WnjDe"!4052PCL]W_?Ou&7dI?IP_DIn$/De*E%Ci=6-F`<L"DIn$/
+De*E%D/WrrP&5P3G%#3.+Bs[%CdT=]<$6!Z+DaIhCdK7M+Dtb7D/WrrP"Us2@:WnjDe"!405YW
+<AKYl%GAV8/AWej45^eep6$?[QF!,=@B-:oO99MqVA7Te#@s;uIBcq,G!KmJH1Qk"OP(S1G%[&
+V$6W@02@;L",De"!4HS9)NP!5$bD..I#L]E55Bl9)CL]N[<HYIA\5)9<(9S`\35'rFnLa\F&I?
+I0X.$@Ja!KmJH3/.G6P#@H,L&h:;C4279OrKPjOpdF:P')29%[&V$ASu!F<*4K#E/4LW1G<6[G
+]mM3F+t">OpR:-04]!=AKYSnCia0N1OEgYD0'?+AT!YoH]gXBP#Q"1@s29sF!,=<A7^osD0'>4
+Bp),P@$5JUP!FGY<,dWqP%odQP!+.FDIn$/De*E%Ci=6-F`<L"DIn$/De*E%D/WrrP&5PUFEht
+;CibC4E0<m^<*4<PCia]:@s;u:@:WnjDe"!4+Bot2DJWg,+C-*uA7Te#@s;u:DIn$/De*E%6'?
+)36$?[QF!+\Cs(k%FCfDNn=<MEK+Da@e>p+#rGAV8/AWf]L94;@AFDkZ5F+'3N05YW<AKYl%GA
+V8/AWei&A8c?s+EVXHAWej45^eepD0'?+ASrW)P,X6>P$r\jEb0)tGB4mEF_u/1D.@d2+DN$<L
+]`f<L]W`UOo^_=Ou"b3ASlU!Ci^_'+Dl14+DDs8F(]<#DBNYVWKKr%OuR#j@s29sF!,=<A7^os
+P!5%:HY%))G%#3.+Dl%-AWf]L5*AR%!g7\SH]iN-s+p]2s+p]'P#Zpn8R7K8Eb0)tGB8QAP!*h
+sD0B?(F-:!g"-Pg1"FF>q@rus=@;L"@!-")pOogehEb0*2@;L"J!g7\3+@B+1G%#3.FDkZ5F!+
+n%A9;a"GB5ESDe*E%6'=#WBcq86B5D-sOu"b%Df0,/FE2M8Ou&7dI?IQMASkq$F,0m\4`Y+NG%
+#3.P%'4KP!+s2D/Wrr+BXeDOp$,9+CfM<G%#3.L]DCW9TfI?F`M&1G%#3.OogehASu"$@;L!-D
+/WrrP"Tk.F>8qOOogeh>p)L6=E\+hF*)>1GB4m8A7Te#@s;uID/Wrr+@2/H052PGF(]<#DNZe/
+A8c?s+EVXHAWej45^eepEb0)tGB8QAP!*hsD0B?(F-:!g!KoU/"FFX#G]mM3F,0g8P"\5B=E\+
+hF*)>1GB4m8A7Te#@s;u:>9J'+Ch%Z3>p*QdA9;a"GB4lmG%#3.+Dl14+DI!3P"T4oA9;a"GB5
+ESDe*E%6'=#WBcq86B5D-sOu"b%Df0,/FE2M8Ou&7dI?IQMASkq$F,0j[4`Y+NG%#3.P%'4JP!
++s2HXh/BG%#3.L]DCW9LDc]G%#3.FDkZ5F!+n%A9;a"GB4lmG%#3.+Dl14+DI!3P"T4oA9;a"G
+B5ESDe*E%6'=#WBcq86B5D-sOu"b%Df0,/FE2M8Ou&7dI?IQXP#Qjm<+TrWG%#3.+Dl%-AWf]'
+F(ZV0P"Us2OuQrnG]mM3F-8_+P!5%S06!(<P%&Bn!Ko5lBcq,G!KmJH1OYEtA8c?sP&PbpE/4U
+ZC5;kQ4aW>WI?IP_Bcq,G!KsFF1G<\iE$/_0@s29sF!,=<A7^osD0'>4Bp),P99NbIWKK&cP%@
+i?@rus=@;L"@!-")pOogeh>p)L6=E\+hF*)>1GB4m8A7Te#@s;u:>9J'+Ch%Z3>p*QdA9;a"GB
+5ESDe*E%6'=$<+Dl14Ch7LID0p/CD+#L\P"UT4P"L(W!g9CC3/@QOF(ZV0P"Us_OuS6uD0'>4B
+nueQ!Kp*=GX6L]Cibb'P"T4oA9;a"GB5EO+DHW5Oo^_%I="8'@;L!-D0'>4Bp),P94;@AFDkZ5
+F"_5MBnueQ!Ko6eP#Zpn<.0p/I?G)'1G;1?@;L",De"!4HS9)NP!5$b055<?ASrW)DN\Il1G<Z
+hFDPN++DG_V@Yb/M2M_HuCm#?m/<VeBBl5%t+DG_V!g7\^!/LW2!*taDD..I#L]E56Bl7`uDMS
+=VWI&>sP!4[)P"^Z3P!45UEejp_%t0U4M#*8FOuS9eOq39Is,mMJ5*@m]plZ/B!<82bP!4U#s,
+mM5P":`TOpR9ZP!5%OL]D@9FDPN+P"^:e%[&V$ASu!HHS9>o!0T,kARoLe@:OD&@;L">#W.\NO
+u%H!+Dl14Ch7LI4aW>WI?IPuG%#3.+Dl14+DI!3P$jGlH]gXBP#QCV"HmMU!0TKlD0'?+ASrW)
+P,X6=P$r\jEb0)tGB4mEF_u/1D.@d2+DN$<L]il=L]`fVOo^_=Ou"b3ASlU!Ci^_'+Dl14+DDs
+8F(]<#DBNYVWKKr%6$?[QF-8_M99K@>Fa]EE?'7!aASkq$F,0j[4`Y+N@s<!M!g5^0EcP`.G%#
+3.P%&HCD.@d2P$sLVHY$`%Amo1kG%#3.L]DCW9LX,5Cia]:@s;u:@:WnjDe"!4+ED%1G%#3.+C
+SekFDkZ5F"_BKA7 ZlLO u"b*+ Dl14C h7 LI1 Qk"OP #Qjm<,
+?JkCNXS=D/WrrP& 5Q/ 5^eep I?IPu G% #3. +Dl 14+D
+I!3P"UrtARoLe@: OD&@; L" J5&cZ KP'J ^" P!5 %<E0: 6b1 G<GbB nueQ
+!Ko6eP%AKKA7ZlL P&5P! Eb0 )tG B4mE F_ u/1 D.@d2+ DN $<L]il =L]
+`fVOo^@>P,XU;L] N[<Ou %'5 "Hm M U!0 V25 +Dl 14Ch7L ID 3Ap[AS kq$
+F,0p]8s44A7<W*U F!,UC Cm% GS3 +Z W7 Amo 1kG %#3.P !3 iJ5*C 1EE
+0<DJ@W7J2Ou%NL< +TTS Am o1 kG %#3 .L] DCW 9LX,
+5Cia]:@s;u:@:Wn jDe" ! 40 5Y W<A KX: %1MI tKF(]
+<#DN\j`DKTea+DI !3L]W` 3H\ _ `dV 33 fo!, Zdi +DI!3P'E-L L]M@6B-:oE!
+KmJH99ONcG%#3.P !5%%@: Wnj D e"!4 052P CL] W_?Ou%N56$ ?[QF!,=@B-:
+oO99MqVA7Te#@s; uIBcq, G!K mJH1 OYEd I?I QXP#Qjm%[& V$ASu!EHS9>
+o!0T,k@Wl0rF+sl 7OpR: -HYF U>F( ]<#D N[/ 0P!FGY<,?J kCNXS=D/Wrr
+P&5Q/5^eep@Wl0r F!,EE D0'>4 Bp),P GV= "YE/4OX!Ko 5lBcq,G!KmJ
+H1OYEt061W@@s;u :DKTf:A Skq$F! ,3?E0 :6b 98EV3WKK%j @Wl0rF!+[0E
+b0)tGB8Q?P!*M%D0'?+AT!YoOp$,f!.B35L&h(5Ap\KFHQ[9^!;_jVL&h%4!H<bnqN>TAP#Zpn
+<FU,[CibC4E0<nX!g7\3Ou%moL]Lt.@;L"J@Yb&JWI$:;P!5$bC*7JY!Jgc>!JUT>P&,jQs,q,
+Q!KmImG%#3.+E3K:Oo^_*L&h:;8pc9n!0X=0P#Pn6@;L"J5&cZKP'DD<87HaNCi^_-A7Te#@s;
+uID/Wrr+@2/HI?G)'1G<6^F+sl7OpR:-05YW<AKX:%1G<Hu!0T,kC5;kQ1OEgYD0'?+AT!Z'H]
+gXBP#PX=ASu!D04f$26W@/@ASu!F<*1ebDIZ%5=>+6'@mr%^DIZ!U>p+!&A7^osP%9_?I?J.p@
+s;u:@s<!M!,@ZjOu%NL<%hcjFDPN++CfV:P%'S1061W@@s;u:DKTf:ASkq$F!,4R!KsFF98EV3
+WKK&XASkq$F,0gZ:jXj*GB4m2+CfV:OogehEb0)tGB8+c!.fQ]K3aWrA79RrAT!;)Oo^@>A79R
+rASrW2ASkq$F-6Q[!KsF/056S5Ou$g.!KmJ<!0r^`L&h18C5;nR!JUT*Oo^_*L&h49:j[osrfX
+7/P#Pq8F-8_$P!5%RI?I-LP#O)KL]ESoHS94YD.Rg0Bk)3,Bp),P1G<ceGB4mDL]ET2Ou"b$De
+sJ;D284U99M(aEb/ls+Dlo9P"Uro061W:Fs(XX"-Q<?1G<ci@s9&4L]il6Ou"b3F(/r.D28@Y9
+9M(aD/sQ=F!,LAGB8QAEb/lsP&-;\Ou"b.@rH1)+Cf>+F,0m<AS61LCm(c\1G<chDg-7FD/sQ=
+F!,L7B5!H+Ou"b3@rH1)+DkV,Ci^_>AS61L;N`ghDI[m3+Dl.;GB4mD@rH1)P&,p[P#?=A@s=*
+8Ou"b0CLMK2FE2M8Ou$TlF-:!M@s<!WD0mpSCLMK2AmoLsAWeitP#QREDg-8Y!0V2AEc6/C+ED
+CEF-:C'"FDe?CLMK2AmoLsAWeitP#QR6DesKN!0V2A@rH1)+Cf>+F-:C'"FDe?CLMK2AmoLsAW
+eitP#Q%3Ec#6,NWsQEF^]<%P!*i(GB4m:DesKXD3>$K05kW7Gp$^-Cia0N1OYEcAoD^,@<@M9E
+b/a&@;]^oAWf2sDg-7F@rH1)P!+s2HS9;Q@<iu-@;L!rOu%NL<,ZP\H$b]>I?IP_Bcq,G!KmJH
+1OYEt04T38F!,LE@Vh26Ou"b&@q'L%EcY]+OpR:-L]E53EcY]+L]N[<HS9)r5*@^3GB8pVL'AE
+VD0mpGG@GW-H=\4/GB8pVEcY]+P#@H!I=#[a#EiMB04T38F(or3L&da,1OXU'@s;C'BmO?F!1T
+--I?ITYP#X/FG@D\)G@GW-H=`6GOu%moL]M"0@WQ70AV^AMWI$:5P!5$b@s;B)C*7#1F!,3?Ec
+Y]+P&+iq!Kp*=G^Y`G@s;C'+DDs.G@H_[ARf1j+DDs&+EDO5G9CpI@Vh3*H\_ZMP(R&'G^Y`G0
+62,BCi<r/>DN<7!<7D/3/@X!Cm$c4!<A9TH\MPQP/2R0<.0p^?'6usEcZ&8B8-EeOpR:-L]N;4
+L&h7#OuRK'@;KjpP!5%%P!3o-Ci<sB",Hu@LQZn1P"76HF)Z/<A:'+6Or9&UP&6@GL]ETTOp$,
+PF)5c-P!5%%P!3o-Ci<sL5*AR%!JUUSP%o#Y@;KjpP!5%%I=%-"P')Q\I?ITYOq*X204Sp3AnH
+*,>DN<#F(9D:EcY]+P#?X_!.C#_?'7""!JgbsF(9D:EcY]+P#?W[Bp(ZC1Lk?7AnH*,Bcpo(AS
+,Oq+DHW4P,XU;P'C\s!KsF<s+g]&05?Y6Ou$TdAS,Oq+DN$/De3NmF!,4R!KsFF94MmOAnH*,C
+6D51F(&m'B-:oO96,)mEc5KO_30%kP"9)$AS,OqL]Cq'AS,OqL]ET2EcYZ*DeC2,P"Th:E,ol-
+P'DD<82"IkAS,Oq+Cf>$AnH+?!+TqYAnH+I@Yb&JWKKr<1Pc$e!Fp=_F-:!g!KsF/056S5Ou"b
+$G@D\)G@GV9Bp),P1G<<L@N]5l@WNZ+P"UroL]E53@s;CF@Yb&JWI$:?P!3B"@Zip<94_UBL]E
+T2P/3;;ARf24@Yb&JWJLS1!.-A6P!5$b05r%F@q(U1C6GQP!KsFF1M('*+E/HF+Cf>$AnH*,C6
+D51F)Z/<A<M1PL]ET7HY$\r+E/H7@q$R"L]NY>P"T@r@N]WQ99R,SG^Y`SI?I-LP":"a88_p]F
++sl7P!+.FARf1j+Bot"@q'M8#`&PF9RD2N8S)C@F,0gP#a.l.I?I0-Ou%NL<%ha*F!+[0@s<!@
+I?I0BF(9E@L]DjdK3aWrL]E53EcY`7L]N[<HS9)r5*@^3GB4mE@s;u:Bp&L.@q'L%BcqG;@Vh3
+BP"TL3EcY]+P#@H9P'DD<82"guA9D^"H\_f\s,r.t#V[qd0JG170Sg!tV32^Z3/@Zms,r.n!f.
+,FV33Nq30Ia,#a.B7WKKH.H&)]]s+gZ%L]NZ@P!5%%LbP!kP!4;W8<S+O$]+bELO51KL]NZ@L]
+ETMH]gR0Ec6/COo^_0L]hR8Dg-8Y"HieA#a/qcWKI:1P#RT(L]ETMHYm82Ciba?P!4[)D.@L#F
+,0s^!Jh#EC6GQZ!KoWpP#R5<P#uRADg-8c8pc^bD/sQ=F-<Mc5(/SnP!3_mDesKXCm"g9D..OL
+5)9Aus,r/#G^Y`HI?G)'1G<9UDBN/1L]W_WL]Wa=P!4['P,XU.I?G(eL]W_WL]N[<P!4['P,XU
+.I?G(eL]W_WL]Wa=P!4[&P,XU.I?G(eL]W_WL]N[<P!4[&P,XU.I?G(eL]W_WP!4[&P,XU.I?G
+(eL]W_WL]Wa=I?G(eL]W_WL]N[<I?G(eL]W_WI?G(GOu"b%D.>:C>C.K0Ec6/CL]N[<L]Djd%X
+W&5Dg-8Y!KsF<!I^+@HYmeAGB8Q@P,X6=I?G(eL]D:%DesKN!g9O2Oq)hp!,Z4aCibC5P,Wkm%
+XX!4D.@L#F,0j[WI9p>H\_`?@rH1)L]N[<I?G(eL]_L(DesKN!KsF1Oq(c\1G<9U@ko02HQ[0G
+Dg-8Y"-TX>!.C"?HYmeAGB8QAP,X6;I?G(eD/sQ=F,0j[WJCP&Oq)hp!,Z4aCibC8P,Wkm%XX!
+3D.@L#F,0p]WI9p>H\_Z=@rH1)L]Wa=I?G(eL]D:%DesKN!KsF1Oq)hp!Gu=bCibC5P,Wkm%UG
+5R04\p01E]nK+Dl.;GB8QBP,X6;I?G(eD/sQ=F,0m\WJCP&Oq)hUEc6/CL]N[<L]Djd%XX!3D.
+@L#F,0m\WI9p>H\_Z=@rH1)L]N[<I?G(eL]M@&DesKN!KsF1Oq)hp!c;FcCibC5P,Wkm%XX!6D
+.@L#F,0j[WI9p>?'6usA8Pg5+Bs18D/sQ=F,0j[WJCP&Oq)hUEc6/CL]N[<D.@L#F,0j[WI9p>
+H\_Z=@rH1)L]`g>I?G(eL]D:%DesKN!g9O2Oq)hp!,Z4aCibC5P,Wkm%XX!4D.@L#F,0p]WI9p
+>H\_]>@rH1)L]Wa=I?G(eL]M@&DesKN!KsF1Oq(c\1G<T^@<<Vr+Dl.;GB4mD@rH1)P&,K$s*^
+&_?'7!RGB8pVL]N[<M#W82HXh8@P!5%%I?I-W"Gd&)L]W_WL]ET$P!3`'Dg-8c4d#qpA8Pg2+D
+l%-F_kW;P#R5=Or9&UP!+slD/sQ=F,0m\WKKE-"DqXeCibC8P%odQP&6?bHXpu'1*CFPA9D^"I
+?IQc!g4FW!0TL.5&G=YGB8QAP,XU-Op#W3DesKN#a/qY"Hkp2"FFZr@l#6EDe+!,AUT_@L]W_W
+L]W`&P!3`'Dg-8Y"HieK4d#qb@rH1)L^9/YL]ET$Op$,BD.>CFD/Ws-Ch8$X<-sE&Or9&UP"Lm
+$D/sQ=F-:-u"FGq+Or9EHD.@L#F-:@&!Gu[^FHShN98NV24aU^VDBNe7A9D^"I?IQXP#R5=Oo^
+_0L]Wa=P!4['Or8+HDesKXAs,?6!0Ts;"Hm_NP!FGY<.0p@L]`e@P!4[&Oo^_0H\_`d)/Wl%Ci
+bbOP!4[%P"Ll?H\_`d)3R1#@rH1)P&-9^D/E^'P!5%%M#WW$HXpu2+Dl%-F_kW;P#Qjm</:U=W
+KKH$!g3SI5)99')2J9U8s2ATEc6/CP%Kj[P&Pc25^eepI?J/t!KmJH5)9<(!KoX&!g4F<@rH1)
+P%Kk@D/sQ=F-:-uEftBgP')q1P!FGY<.0p@D/E^'+Dl.;GB4mD@rH1)P&,pTP,XU;M#WW$HYmV
+.F<GF@Dg-7FD.@L#F,0j[WKM(R!g9NeL]N;3?'9JMD..N/D/sQ=F!,=0DesKXCkr.UWEY/YL]L
+eEH$tiT05tWMF!,LAGB4m:DesKXCm#*f1G<6^E,TfR!0T-o!/LYrDg-8Y!KsF/056S5Ou$epEc
+Q)BF,0m\!Kq2R!0TKlE+sQ<+DDs.DesKXCg/#lDesKN!g6H.L]N;3I?K4gP'MJ=<,!IqEc6/CL
+]W_?P%o#XDg-8Y!KmJH4aV-^G]P!A+Cf>+F-:?D+Cf>+F*i]DI?K4gP'MJ=<,!IqEc6/CL]W_?
+P%odQP&4nUEcQ)BF,0m\!Kq2<Ec6/CL]NY>P&6?bH\_ZX!Fp%aF,0j[WI$:5P!5$bC*7P,DesK
+N!g3SIC5;kQ4aV-^G]P!A+Cf>+F-:?SOo^@>P'DD<<,*Or@rH1)L]W_?P%o#IDesKN!KmJH4aV
+-^G]P!A+Cf>+F-:?SOo]9Q!g7;]G^Y`SC*7P,DesKN!g3SIC5;kQD/(26@rH1)L]W_?P%o#IDe
+sKN!KmJHD3>$KE+sQ<+DDs.DesKXChf+6D/E^'+CfV7Df_(7P'AWiGAqJA+CfV7Df^^8Oo^_%I
+?IQXP":"a<.0p#4?P9;ASs.SEb0-*@<?O(GV=#MG]P!HBm=\PE+sQA+Cf>+F"_KHG^1EPDg-7U
+BOtmjBQPA;Dg-8Y!g7AU8<PkaGA1T0BHUf'CibC6P&,qFOu=t3E-*4@E-,f4DK?pa4s4BSDKKE
+0@<[lR0/%?WDJ`g(EbTc]<0B7iOq*X204\L5@;TFpEbTc]30If*F_`U>D_?-CEcQG7F`MSBDD#
+CBBlJ#6A7]@eDImj"F)Q2A@qCgGOuY1:ATVm"@r#drB9KiQP'(hWFDtYuCM@[!I?IP~>
+% uk.co.terryburton.bwipp/datamatrix 0.0 2019102900
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp datamatrixrectangular 0.0 2019102900 50884 54201
+%%BeginData: 17 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO uP+8A Su? nFE2) ?OuP
++;CG'+8/p(ZFEd; ,:Ecc 5;/ n0$ =E,^ uo P'E -L04\L 5@ ;TFpEb Tc]
+3%oDi/n8fPFCfK5 H"(o: FDl %L@ W uO* E0A q<G `iLhA7 9R gD..O, Bm=
+Z0@ru-sB6A$!EdN TVOu8 C30 5kf OB l@ m1P !5$ b04J@ 1@ rGmhP !5$
+b04]!=FC]E#G9CL +Cia 0N 1N .5 SBl @m1 P-6 N[FE
+2)5B68E<AWf3'L] NYrO p u> KF D5Z 2F* j(NA moLsA
+Wf3'P!FGY<0B5(@ ZmRN0o c8t P )XR (F _-_! H]f tD5*C&O5*@ ^MH]ft&Eckr
+V1OYEdI?J0)*g/N :DfBf4 Df0 W Z5*@ ^MP# Q@= FD5Z2F*j'+ I?I0?E-,f4D
+KCgDA8c@-A9)+&F E2M8P' Cna FD5Z 2F,g H:D fT]'FH-ZJA RfgjDJ*csP'
+AWgEbBG9@UX:eDe *E%Df Bf4D f0VL 04\L 5@; TFpEbTc]5E [g2EbBHR")i
+.#DfBf4Df0WZG[Y W*F!, "3DKK E0@<[ lR0 /%?WDJ`g(E bTc]<0B7iOq
+*X204\L5@;TFpEb Tc=ARfg jDJ+*. @<.Mj P%6 4gCG'+8/p( ZFEd;,:Ecc5
+;/n0$=E,Zq1AS,XoATD@'Dfp)1AWh2!3A5GbFDtYuCM@[!P.H"'F`V,9E+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/datamatrixrectangular 0.0 2019102900
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+1 1 translate
+0 0 moveto
+<31323334>
+<646d72652076657273696f6e3d38783830>
+/datamatrixrectangular /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/dotcode-1.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/dotcode-1.eps
new file mode 100644
index 0000000000..048b399a21
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/dotcode-1.eps
@@ -0,0 +1,427 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 112 76
+%%Creator: Online Barcode Generator 2018-05-20. https://the-burtons.xyz/barcode-generator/
+%%CreationDate: 2018-05-25 09:20:28
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2018052000 30005 33214
+%%BeginData: 7 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+P1OerF_-`n01TSk ATDKp 010/i AS5q% H' 6mE 30Ia, !KmJH2
+3Ji?3%mj@F*(i.@ qAV bE+L\ DATVm "@ r#d rB9 KiQP
+'&Es@:O(aA79M!@ <ls?E +O HE04A mA@< ls ?E+ OH\<K _S[ F_`U> D_?-
+CEcQG7F`MSBDD#C BBlJ$ S4t f93 FCf* 'E d8d <AS,Xo AT D@'Dfp )1A
+Wh2!hZ~>
+% Category/uk.co.terryburton.bwipp 0.0 2018052000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2018052000 153916 40223
+%%BeginData: 9 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23JD %Ea`[ 'A S#n &Df U1I,
+\;":DfV")04f0ED fTQ0A oE hrP'A 6`Ec Q) =P! 1O1Ec Q)= DIIBn P!5%
+R,\;":DfRL@Df'? "DIeo MP' A6` EcQ) =0 5b? FATDg0 EZ fIEF_- _\P
++mAf%[&V$Ea`['A S#n&D fV" #P% 6 4gC G'+ 8/p (ZFEd; ,: Ecc5;/ n0$
+=E,Zq1AS,XoATD@ 'Dfp) 1AW h2! 3A 5G bFD tYu CM@[!P .H "'F`V, 9E+
+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/raiseerror 0.0 2018052000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2018052000 111923 110822
+%%BeginData: 91 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOp s'bAS u?n FE2)? H\`B
+!23JD%@<-"%P!5$ b06_, @FD -I2 Ou"b )A SGd jFGKs\ 1G <3GEas $(D
+fUjAF`)83FHSF5@ UWb^B 6%p 5DI d 6qC i=? S"a +^(ATX (k 04Sp:D fT]
+'E/k*EDKBB2Ou"b %Dfg) H+D ,%u F( LL j05 5<> F)Z/2@ :Y /oOu"b *DJ
+O<4Eb/ZiBSZYO1G <H[C NFH 8A RT +mL ]ES o05 5<6C
+is9"FCf]=+D,%uF (LLj 0 6D G\ +Bo soO u"b5 AU&<,
+Des?4NWjQCF(KHV 1G<i]G ]\1 = Ch[ O" NWjQ CF( KHV1G<i]G] \4>Ch[O"NWj
+QCF(KHV1G<i]G][ P9DKLm D6Z 7 *fBk ;=J1 G<i ]G]\"@H=_m >Ou"b5AU&<A
+De<U&ATW_.Ou"b5 AU&<BD e<U &ATW _.Ou "b5 AU&<0@;p:D !0T,k@;L%-A
+U&<W!0T-HEbBH?O u%NL8 T/Qi H]g15 P"@< NBk 2=!+EqO1FD -gjOu"b)ASG
+djF<G7.BkM+$OtV tS04J @1@rH 1%EZe h"E as$(DfV!mO u"b#@:O(cEc
+6)<A7KOoDfQt0@: O(cEc6) <A7KOo DfV!m Ou" b*DJO<4Eb/ Zi+DG_/F)Z/
+2@:YNSOu"b*DJO<4Eb/ZiBHV#,CNFH8ART+_OtVtS055<>F)Z/2@:XO(Bl7^-E,oMuA9O+hOu"
+b5AU&<,Des?4+EV1>FCT6*DfV!mOu"b5AU&<A@;KXjDBO%4G]\1=Ch[O"OtDhQ06CcMFEq;2Bk
+M<+FCf]=H!tN'B5WkaOu"b5AU&</Df0Y>FCf]=AoDR/OtDhQ06CcMFE;/BAKZ)+G]\"@H=`6mO
+u"b5AU&<ADe<U&ATT&:AU&<ADe<U&ATX(gOu"b5AU&<BDe<U&ATT&:AU&<BDe<U&ATX(gOu"b5
+AU&<0@;p91FCf]=B45b#OtVtS04A[=FCf]=+CT).FCf]=OtDhQBl7^-E,oMuA;C5KD0mpMDJO<
+4Eb/ZiBHV#,CNFH8ART,41OYEcBl7^-E,oMuA;C5KD0mpMDJO<4Eb/ZiFs(L:CNFH8ART,41OY
+Ec06hbTATW8AE+sQAP&-9^E+sQ<P!5%%I?G)'1G<uuBl8**EccXNE+sQAP&-9^E+sQ<P!4['Or
+9EUL]N[TP'DD<%[&V$D0U>=ATW8AE+sQAP&-9^D3@)G98EV3"FZFCOu"b.G^4@AFF,-LBm=lcC
+m"g9P!4[(M#WWnP'DD<%[&V$D0'91@W-9tATE,?E+sQAP&-9^D3@)=!g4Fa98EY4EftZqOq*X2
+05Y0:Eb&a%De<U.+E2%>G`lm+!H!u`L]W_WP"UT6P&c_1I?G)'1G<TZF(0'.A7]e.+E2%>G`lm
++!H!u`P"UT8Op$RBP!+5V%[&V$D.@Bn@<-];E+sQAP&-9^D3@)=!g4Fa98EV3"Hn"XOq*X205Y
+38ARTU9H\_`d)/Wl"ARTV8!g4FW!KmJ#@r,^bEejd[)3R1>!KmJH5&FeGARTV8!g4Fa5)96&!K
+oW`@r,^bEejaZ!KoX&!KmJH5&FeGARTV-Oq*X206D5C@qC!?H'1@S1G=!95*@]TA8-',G_cB`!
+I9J%Oo]EEH"U]1Ou"b)F_;h-Bl]@m06;@\G`jj9F*SmROu"b4A8-',A8-(I1MpQ@CEQh(GT_8S
+?$d]=L]NY>Gp%?f!KmJ/L]NY>GT_9f!KmJ.+F/bKA8-(?!g7A_DN]c.7!XqZOu"aZG`k7R1G;-
+=7!KhBGp%?WB4Z1J1G;+@P!5$b010uI5*@]T6Qea@+@CDsG^3q5FHSF56@"_XOu"aXG`k7R1G;
+';6?jV>Gp%?WB4Z1J1G;%>P!5$b00siG5*@]T5p/I<+@18qG^3q5FHSFG+@;5SHU/cAP!+.F9R
+V7@;LO^.I="7&6]sT!+@MAUOp$+tL]ET$BQ[sD!0TL._0[h5I=!V:I?ITYHS7j:P#Zpn<K]<p7
+Zoo]P'(;LEej^Y4aSi,+F&\COo^_%I?IQ?Bl]"1P!+.FGp%Bg!KmJH1OYEcA8-(?!g5]n06eUa
+L]N[<Ou%NL<+K]`L]`f'HS9XeH&)KaWKK&cP#Q+;B8?PN4aTJ>+@18qD0'91@W-9tATE3G+@:;
+q6?s\jF(KH&DfTB"Eda*NI=!V@P!+.FA8-',A8-(?"-N\@"HmM_1MCoDL]NZ%HU;s"6?s\jF(K
+H&DfTB"EZdbp+@LJtD.7F(A7]e"AnHIS<.0*HA8-',A8-(?!KmJ>"HmM_1MCoDL]ET$HU2m!6$
+XSiF(KH&DfTB"EZd_o+@CDsD.7F(A7]e"AnHIS<.0p0>9J/5Gp$C@P#Z`LF*Nj2Gp%0RP!+s2A
+8-',F(B!*P!+s2H]gXBP#QjmAWe!q$'G[Z5*C%AGT_6e!KmJH1G="rH&)Ka!Ko5lF<GfNGp$sK
+H"U]1L]N[TOu$r`EbceB+F/<s)i+KW4aW>WI?IP_H'1@S1G=!95*@^H+F,)HG^3q5F<G[gD0q'
+=G_cB`WJLS1!.0kgGp$s<F(0'.A7]e.P!5%OP!FGY<0DBPP"9P+G^,#FP,W\^!KmJ>!H;atG_c
+B`WI'dfGp$s<F(0'.A7]e.P!5%OP!FGY<0DBPP":B0P!44GBp(ZC1MItW+Dkh6@W-9tATErQHZ
+UBE+F,)HG^4@AF<G9?Gp%?WBl8**Ecc_m<,!J#L]N[<D0U>=ATT&:P&4nUH&)KaWGQ?j@W-9tA
+TErQOp$,G+F/bDP,Wkm<,!J#L]NY>D0U>=ATT&:P&4nUH&)Ka!GuOl@W-9tATErQOp$,G+F/bD
+Oo]uo<.0p#I?IQXP%Bf!OuS6tP"Ur>P'&F'0p4_`1G<u-P!5$bOuSUaP%'4JP,X6<P!5%&H]eG
+nFYA"qP!5$b06f785*@^H1*CfrP#-LM0o,mU15GsoWI&nF+DkV)ARTU9I?I-LP#Q]^+F,]):j[
+IBL]ViWL]N[<H[%9.5&FeGARTU9I?I-LP#QZ]+F#W(Ap\bWM#MWSL]NY>H[.=gD.@Bn@<+2QP"
+:"a<-^5AGqkIoH[.?%rcp8T!KmJ1GVP@FD.@Bn@<+2QP":"a<%iJN+F#Z)1G=#.+F,`*1OYEXO
+uSV6L]N[<L]ET%P"^:e%[&V$F(KH%DL#`1Ci=?@04AaD@rH1%EfrVL1LY0H@rH1%Efsmf#*M,r
+NX.`i+<VdL+?kSeP,4<ZOuS6u@;^@#Des?4P'N3GP!=;J!<83?I?I0bSUHZ#@;^@#Des?4P%'4
+QP!+/P$9TFR+<VdL+<Wk($Bh6K)3Qt8!F]kk@rH1%Eft^216OkKL&h7:2LU`[P*:<W<.0o>Ou"
+b%Eaa0.@<lF)HS9>PG]ReDBkJQ-Bm=]^1G<]]G]T$3Ou"b1Bm=\A>9Im!G^,#GOo]oc!.C#_L]
+DC.G^(?MBm=]^@Yb&JWI'F$P!3i!G]T$3E+sQAP"_#?P')Q\I?I-?Bm=lY!g3S2L]DjdK3aWr0
+5tWMGT^s>G^,#GOo^_%05tWMGp%'?G^5)HOo^_%05Vh9+E2%>F-:!ZL]DjdK3aWr05t?ABQG;#
+L]E53E+sQBL]N[<HS9,s5*@^X!/LYpBm=lY!KsF/056S5Ou$epC*7bHB4Z1@!KoTmBnueQWG74
+iP,WPD@:NksP#Qjm8:?Xl?'6usE+sQA+E2%>G_cEaWKK%jE+sQB+E2%>H&)NbWKK'#DfB-,BQJ
+MRE0<DJ1G<QUDBNn]@ZiNd+DbV,L]N[<P"Ur>P'(`"!0U!<!g7\^!/LYlAT!;)P,Wd]Bp(ZC1N
+4INL]NY>Ch7LIC6D5Q!g7\^#)N8ALPQ+s=D;YgF)Z/2@:X&-"HllC"Gm)@LQZ7rOo]uXP,Wkm<
+JUd6!Kr4o"Hll$DJO<4Eb/ZiG)-9a=GR*9s,r/#:j\?+I=%-VI?ITd"Gm)@LQXi?Bm=od5*DmZ
+L]ET$H]i/mH]hleP#Zpn8<OaOFcpm1FcplqP"Cg'05tWMF!,F9G]ReDBkNSbI?G)'1G<9Z@<ZN
+rH"D#,Dfg&I05tWMF)Q)5B-;/-G]T$(05tWMF-8_M1Ql[4!/LYpBm=]^@Yb&JWI'dfE+sQAP%l
+XpP!5$bE+sQAP#<rYP!5$bGT_8SG^3q5FGKs\4aVF256(Z`Oo]N9G^1EWP,X='!!!"^WKM%AME
+_(@!0RA%Bm=nGH'5.a56(Z`P,X='!!!"5DJO<4Eb/ZiP,X6;L&ktN"auP5I?I-a68*:lG]P!HB
+m=];EbT0L1OYDrOu&7r055<>F)Z/2@:UKpDJO<4Eb/ZiL]W_tOu"b*DJO<4Eb/ZiBHV#,CNFH8
+ART+_L]W_tOu"b*DJO<4Eb/ZiFs(L:CNFH8ART+mL]W_tOu&7LP-&qBA9;K-E+sQAOuA+eP&+f
+CBkM+$+E2%>H'1(A8<RePMhh@h!0V,:Bm=lY!0Ui2Bm=kFE+sQBP%0:JE+sQBP%0Xj@UWb^B6%
+p5DId6qCi=?S"a+^(ATX)PH]h-5@:O(cEc6)<A7KOoDfQtAATV?uH"1c/DfV"-P"g@f<+Bi_Df
+T]'E/k*EDKBB2P!+.F@rH1%Ec#6(+?VcB!FfJX@rH1%EZdP0Ou%NL<+Bi_DfT]'E-i^KATV?uH
+"1c/DfRLHAU0G&Ou$;bE+sQ<HQ[*8H'1=;L]MpNL]Djd<IL$%>p*ZrFEDeT+CoM$GAL]5ATD="
+FE;kW+CoM$GAL]5ATE3^<IL$%FCf]=@rH1%EfL<GDKBB2P&5PfAU&<,Des?4+EM+9@;^@#Des?
+4I?IQDDI[L*A7]joG]\9TFCf]=G[YE&B5W_5F`)83FHSe/AU&<B@;KXjDN4mCDKBB2P!+s2@;L
+ %-AU&<W!0TL."FDeCL]ESo04o*^!0T-[G]\:ZI?I0X!g4FBP&6@GAo<cKP&bo*!g4ESF-8_M1
+G<?XP!5$bP)as;P')q1I?ITnCQb?=P"C(KFCf]=AoDR/+EV1>FE;/BAWi'^Cijc1G]\rGP!+.F
+FEhmM>9J$4FF/fDP"U.MP"C(b8R7K806D8WEZfIKFHU*rV33Wj!/LYtG]]*XL]N[<H]g@1G]]*
+4P"Tn<FE30>L]NZoP'DD<8:>h<FE;PE+CT).FCf]=Ou%NL<HN;(Efsmf!0TKlL]DjMP"q0YL]E
+52P&$'Y0P4a0F(LLHP&lE^L]NZoP')q1P')p^OruDS@;0V$<-`FoP$iX"+>6Q"Bl8#lH#R>X98
+EY44ahZh@;L!rI?ITn+>6Z8Ec5`)=(u2eBTcbd"FH:S02lt5DeiocBk2=!P"UT4OuA*rP!5$O0
+1KktFA61cEbTc]99M5s30J*@5*@mgCm"g?EH6/a!I^,1I?IS`FCf]=@<5piDKM%*Ou"b5AU&<@
+Bk2=!+EV[HEg!;_F`_\HEfsmf!KsF(AU&<0@;p:NCm"g^1G<i]G]\1LDf[%CAU&<ADe<U&ATT&
+>+EV1>FE_G0FD-i:L]W_tOo^_%FCf]=G[YE&B5W_4Ch74#P!+.FFCf]=G]7SB+EV1>FEh_9Aoh
+O*Ou%NL<-2\rFEh51BkM=D"`e<iBQTD#HS9JPG]\1LDf[%G+EV1>FEh_9AohO*P,WP7G]\.DA9
+;LJWKK&cP#QO7G]\1=Ch[O"NX'K7Ao)$jFHSe606CcMFEhbCF!,R9G]\.DA9;K-FCf]=G].2+F
+(KHV!Kq>`1OYEcFCf]=G[YE&B5W_8De<U%BkM+$P!+.FFCf]=G]7SB+F##NAU&<ADe<U&ATX(9
+Ou%NL<-2\rFEh51BkM=D#ASC&FD5?4P!*nuG]\.DA9;K-G`l[%"FDeDAU&<AE,TfR!0T,kFCf]
+=B45b#+F##NAU&<@Bk2=!P,WPEFE3ORL]N[<OuAIZI?IP_FCf]=H#R\C+EV1>FEqe:AohO*+EV
+1>FCB6#ASuUQ!Jgc>!Kq>`1N[2QFEq;2BkM=D"^tkYG%Hh"HS9JPG]\4MDf[%CAU&<BDe<U&AT
+T&6Bm=od!Jgc>!Ko6eP#QO7G]\4>Ch[O"NWs!)DKKH1P!+.FFCf]=H#R\C+EV1>FEqe:AohO*+
+E2%>Gp%3?G][A8@qBP"P,X6=OuAI(Ou%NL<-2\rFEhbCF!,R9G]\4MDf_(WFCf]=B45b#L]DO<
+FE3NOI?ITYP#RT=Ou[rR%[&V$Eb0-*@<?O(G`k%LA1r(@/n8fPFCfK5H"(o:FDl%L@WuO*E$/\
+&Anc-oEb0<1F`Lu'P')pJ06:]HE+*6lBl7RH\pKT_F(KH4@:O(eDJ+B\;u~>
+% uk.co.terryburton.bwipp/renmatrix 0.0 2018052000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp dotcode 0.0 2018052000 299580 311511
+%%BeginData: 283 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOu P+8AS u?n FE2)? OuP+
+;CG'+8/p(ZFEd;, :Ecc5 ;/n 0$= E,^u oP 'E- !04]!C @r GmhH\` B!2
+3JD%DfBf4Df0WZ5 *@]T@ UX: eDe * FB5 *@] TA8 c@-A9) +& +D,%uF (LL
+j061uTF,9jZ1G<6 VCisT 4F, 9jZ 1G <c WFD 5ZL s,o/kE +* d.AKYS nCi
+a0N1G<]UEcYf(DI Xf$@ ;L! rO u" b3@ <Wi +@; L!rO
+u"b'@<6N5AmoLsA Wei& D .. L$ M#W VoD fBf4 Df0WZ
+Y:js=EbTE(FEqh: P!+/J! Ko= ' %<$ 3- Bl@m 1H] kFA@;L!rP! +/T5^eepOuS
+V6P,4<rNWD;+NHB 2`AWf3 'Ot D h\P' )pOO u%N 5OtCcrF_-^ lI?ITYP%Bdt
+OuY16E-,f4DKCt) Ou%NL< ,Z_ tBl@ m1H] g15 P"@<IDg-7F Ec6/COt;bP0
+4Sp:F_u#;+Cf>+F _u#;O t;bP 061KC Bl>, 7@< ?4%OtVtS05 Y-=CERJ&F)-
+piOu%,eFD5ZLs,o NcDg- 8Ys,o O."Cl @dF _u#;M#WW$O p$+bEaa'(Dh
+nLO!g5I)1OYEcE+ *d.AU?( IF(ZV) @<,jr A7^ p5P,4<t05? :COu$QUEas#
+uAUBF<?BU:pOuR<"B9GGnP!5%SP%&0h!Jgc>!AA2N5*@^bFcn_?!/L`?9TgrDF(^Y"C5;nRWKK
+H.G`k%L@Yb,LWJCY>5*ATfH]g@*F(^Y"C6CcDH'2WOOo[4NP!5$b04J@1@rGmh+Dl14L]D1Q9T
+h2p5^eeqI?J/iP#O)D@<-0qDBNCsEas#uAWgMc1G<QQ@>OrH1G<QQ@Yk#H1G<QQ@u1)H1G<3OD
+M\4R1G<f]@>OfD1G<f]@YjlD1G<fY15Pah1G<fY1Pkgh1G<fY1l1mh1G<fY22Lsh1G<fY2Mh$h
+1G<f]@u0c?1G<fZ15POb1G<fZ1PkUb1G<fZ1l1[b1G<fZ22Lab1G<fZ2Mggb1G<fZ2i-mb1G<3
+Y@>O<61G<3Y@YjB61G<ie@>O641G<ie@Yj<41G<ie@u0B41G<ieF,9%C1G<?X0o5"U1G<?X15P
+(U1G<?X1Pk.U1G<6YCl%/81G<0ND2@581G<T!22L7T1G<T!2Mg=T1G<T"15OkO1G<TR@u0$*1G
+<6O@<-3nE-!.++BsXEL`h]Z0JHcT>E/_-NWC;`!\c?7+Bsj,,)u[JNWLmi>p*@3!@*U*,E;gZ1
+L2,-NWCDc!@3[,0Jm&X>E/_1NWCGd!\cK;+Bsj,-B8*RNWLmm>p*@3!@Nm.-]S6^2dIP1La\'-
+NWLmo>p*@-.>TF5!\cW?+Bsj,.ZONZNWLph>p*@3!@s02.ujZc0jPo+NWC\k!A'640f!#W>E/_
+9NWC_l!\lK:+Bsj,/rfrbNWLpl>p*@3!ABH609-)g2-h>/NWCho!AKN80fE;[>E/_=NWCkp!\l
+W>+Bsj,16)AjNWLpp>p*@3!Af`:1QDMk3F*b3NWCts!Aof<1,)uV>E/_ANWD"t!\uK9+Bsj,2N
+@erNWLsk>p*@3!B6#>2i[qp1L2,-NWD,"!B?)@1,N8Z>E/_ENWD/#!\uW=+Bsj,3fX5%NWLso>
+p*@3!BZ;B4,s@t2dIP1NWD8&!BcAD1,rP^>E/_INWD;'!\ucA+Bsj,5)oY-NWM!j>p*@3!C)SF
+5E5e$0jPo+NWDD*!C2YH1GW5Y>E/_MNWDG+!])W<+Bsj,6B2(5NWM!n>p*@3!CMkJ6]M4(2-h>
+/NWDP.!CVqL1H&M]>E/_QNWDS/!])c@+Bsj,7ZIL=NWM!r>p*@3!Cr.N7udX,3F*b3NWD\2!D&
+4P1b`2X>E/_UNWD_3!]2W;+Bsj,8r`pENWM$m>p*@3!DAFR99''11L2,-NWDh6!DJLT1c/J\>E
+/_YNWDk7!]2c?+Bsj,:6#?MNWM$q>p*@3!De^V:Q>K52dIP1NWDt:!DndX1cSb`>E/_]NWE";!
+]2oC+Bsj,;N:cUNWM'l>p*@3!E5!Z;iUo:0jPo+NWE+>!E>'\2)8G[>E/_aNWE.?!];c>+Bsj,
+<fR2]NWM'p>p*@3!EY9^=,m>>2-h>/NWE7B!Eb?`2)\__>E/_eNWE:C!];oB+Bsj,>)iVeNWM'
+t>p*@3!F(Qb>E/bB3F*b3Lg5a@NWM*m>p*@3!F:]d?&etE0jPo+NWEIH!FCcf2DSP\>E/_kNWE
+LI!]Di?+BsX%NWEOJ!]Dl@+BsX&NWERK!]DoA+BsX'NWEUL!]DrB+BsX(NWEXM!]DuC+BsX)NW
+E[N!]E#D+BsX*NWE^O!]E&E+BsX+NWEaP!]Mf=+BsX,NWEdQ!]Mi>+BsX-NWEgR!]Ml?+BsX.N
+WEjS!]Mo@+BsX/NWEmT!]MrA+BsX0NWEpU!]MuB+BsX1NWEsV!]N#C+BsX2NWF!W!]N&D+BsX3
+NWF$X!]N)E+BsX4NWF'Y!]N,F+BsX5NWF*Z!]Vl>+BsX6NWF-[!]Vo?+BsX7NWF0\!]Vr@+BsX
+8NWF3]!]VuA+BsX9NWF6^!]W#B+BsX:NWF9_!]W&C+BsX;NWF<`!]W)D+BsX<NWF?a!]W,E+Bs
+X=NWFBb!]W/F+BsX>NWFEc!]W2G+BsX?NWFHd!]_r?+BsX@NWFKe!]_u@+BsXANWFNf!]`#A+B
+sXBNWFQg!]`&B+BsXCNWFTh!]`)C+BsXDLjtEd3Ak(b>9J!!@N]0$ClSQW2I.G0+EM!IL^B(C3
+B(4d>9Iur1Pd$2!]`5G+Bot0@Pil]NWM4$>p*>oF(."_*arc"+C-*o+EM!M+EM.'+DbIp+C-*o
++DbIq+DbIp+EM.(+C-*o+EM$J+EM$J+EM!I+C-*o+EM$K+EM$K+EM!J+C-*o+EM$L+EM$L+EM!
+K+C-*o+DbIr+DbIr+DbIq+C-*o+D,LG+D,LG+D,LG+C-*o+D,LH+D,LH+D,LH+C-*o+D,LI+D,
+LI+D,LI+C-*o+C]D#+C]D#+C]D#+C-*o+C]D$+C]D$+C]D$+C-*o+C]&&+C]&&+C]&&+C-*qOu
+"b$BOPq)@;L!->DR9^22HC<22H782-lA$L]E53@q]:kD..C)P%'4JP,Wd]Bp(ZC1G<<W@ric&B
+OPpu@;p91Bp),P1Pc$e!Jgf(05?Y6Ou$Ze@ric-P"UrtP-6N[FE2)5B68E<AWf3'L]ET2I?IQ>
+BOPq)@;L!-C6D5Q5&$1)I?I-LP"75lG%#3.+Cf(nEctl-F,0gZ99M(a6?ZdRF!+t+@<-O"CibC
+5P"Uro6?ZdRF!,<R22G\(GX?R^Ci^_90K+_rP'B<:@;L!-D)!f%A!2('G%#3.+DkOsLh)Zn010
+nkCi^_/BOPq)@;L"@!g63>1G;'d:3L&^F!*S-Lh9j6F(6sJF(7!KF(7$LF(7'MF(7*NF(7-OFD
+YG/FDYJ0FDYM1FDZ(A?$h_uL]NY>OuRlQ8Wn3[5*@]TAo;+%@;L!-4?SW,7SZ<*Ao9>`"@c-R1
+1kDZNW_gH6Si=l1E\kFOu"b.F(ZV)@<-0qDNY<h1G<Hu!0T,kC5;kQ1OEgY@UX:nAT!YoH]gXB
+P#O)EBOPp(@UX:eDe*E%Bp),P1N6cCF(Js$@j#8p@<.01P!+s2BcpknEbo<)L]im?P%Kj[HX^E
+(@rGmh+DHW4Oo^_=LgH6]HS8lB@<*K&DI[iuCi^_.@<,jrA7ZltL]NY>L]il7P"Uro052PCL]i
+kAOu%N5052PCL]NY>Ou%NL<IL$0D0'>4C*7#"@<.NU052PCL]NY>Ou"b++DQ]5Oo^_%I?J.pD0
+'>4D0'?G!,@ZjOu"b.F(]<#DBNe;B9H_e1G<W6BkM.%F!+[0D0'?+AT!;)Oo]oc!.C#_?'6us;
+e:,`DKKH$DH(1b+Bot*F(]<#DMS=V!IJEeCia09P(R&'1G;0a8K_4[D0'?+AT!;)Oo]oA@;L!r
+I?K4gOu"aZ@<?X/5p0ASD0'?+AT!;)Oo]oA@;L!rI?K4gOu"aZ@<?X/66KJTD0'?+AT!;)Oo]o
+A@;L!rI?K4gOu"aZ@<?X/6QfSUD0'?+AT!;)Oo]oA@;L!rI?K4gOu"aXBl7@"Gp$<6D0'?+AT!
+;0Oo]oA@;L!rI?K4gOu"aWBOtU_6QfSUD0'?+AT!;)Oo]oc!.C#_?'6us<-!7O+Bot*F(]<#DM
+S=V!IKV&I?K4gOu"aWBOtU_5p0ASD0'?+AT!;)Oo]oc!.C#_?'6us6"jh<A3qDC+Dl14Ch7L?!
+KmJ1L]DjdK3aWr03)n3Bl$4UA5d&P+Bot*F(]<#DMS=V!IKV&I?K4gOu$rrB5D-sL]N[<M#W82
+HS9)r5*@]T@UX:eBOPp(D0'>4Bp),P1Lad5@q]:kLbOua@UX:eBOPq;3Kdg6"FG#SBkM.%F!,0
+>DFA2OBlnD=BnueQ!Kp*3!KmJHG^Y`S6$?[QF!+q#EarckEfsgW6t(1[D*]:Y+EVXHAWh:dP#O
+bk@;L!-@UX:eBOPqE@!b:MFEMFe+DDs?EckrVG^Y`S01/W27Nc;OCia0N1Lad5@q]:kL^fM1Bc
+q86B5D-sL]N[<P%Kj[HYmh:+DHW4Oo^_=L^K;.HS7`a9L^.HEckrV1OYEcI?IPs;G9Q,+@KX[F
+_sGfBcqM<F_-_\I?IQI6tp:JFE8R=P"UT4P"L'h@<?X/6Qg(cFE2M8P'DD<<+99V@q]:kL]ETM
+HUM:aF_sJgBcqM<F_-_\I?IQ=@<,jk@<.)&J<ENO6>:=GEd8dA+EVXHAWh:dP#Q<eBkM.%F!,1
+[98Eq<8pbD`Ebce7F(ZV0L^K;=OogehL]MjY0Tp:"AmoLsAWf<,P#R5lP&5PX@;L!rP!FGY<0D
+BeFcpm1Fcpm1Fbhu>D0ol'Cia0N5^eepLbY'0HY-]&F(LM"I?IQOEckrAP(Q\EG%GQ5AS#aYAS
+rW)L]`J5P)#3FOqW8,<,P*<B5)I/+DHW4Oo^_=L^'#7D0'>4Bp),$DDIA<Op$,#6V/D7+EVXHA
+Wh:dP#Pn!EarckEej^YAn#1h@q]:k+D,LIP&6?bHU2=V@:V_JBco]TART+:+DHW4Oo^_=L]NY>
+P'DD%DFA2OBlnD=Bp),F!Kpl<6"jh<A4%JRL]ET_I="7nART+:+DDraBOtU_6Qg*!!g3SI98EV
+3!Kq\UP#Zpn<Gk3=B5)I/+DI!3L]ET76"jh<A4%JRP"S)SART+:+DHW4Oo^_=P#.;EHW5$26Qg
+(c6"jh<A4%JRP"Us_I?IPt@<?X/5p0m)92oqW6Qg*+98EY4As*:+@<,jk@<*K&DDRGmOp$+tBO
+tU_5p0ka6"jh<A3h>PL]NY>P"UT3Oo^_jI?IPt@<?X/66L!*92oqW6Qg*+98EY4As*:+@<,jk@
+<*K&DDRGmOp$+tBOtU_66Ktb6"jh<A3qDQL]NY>6W-TIH\_]c!I^,1P"UT3Oo^_jI?IQ=@<,jk
+@<*K&DDRGmHW=s*Bl$4UA5d&P+DDruDKKT/7;cX7AS3-"L]NY>P"UT3Oo^_jI?IQXP"75lL]ES
+o01(HqOu"aYL]W_q01&6*L]`er04AC%FDkZ5F*j'0@s<!W5&-6EP'J]qP!5%<C6AU\1OYDrOu"
+b#@<6!82*#bs0ebD1055<e5*@]TBl7`uDBNY2P%'S1055;H>DNGsDJWm%P,Wea!.C#_Bl9(8P'
+(&n1G<ZhFGL-a$'I(tD0'0-+Bot&DMS:K!g66?!g7\3Ou"b.F(986>9Id(@WR\6P')pOL&hC>C
+m"gT!dg(iLhDlcP!4\7P#?^kK3aWr05P]=F!+[0Bl8_.L]`f6Oogeh?'6usCia*-+Bot)F(03R
+!g7\h5)'(?P&-9^P!4O!!<rjnCm"gT"+-1jLhDlcP!4\7P#?^kK3aWrCia*-L]ET2D0'3.L]ET
+2LanR(Oo]KDFGL*V!g6ZAB9I"mG_g!q;J^DaF,0j[99K<mF(99I!0U!27$;AL!GumfF,0j[98G
+'\Cm"g;F``EBL]W`ALhDlcP'DdqP#?+;@rmG-P"Ur=D0'3.L]ET2Lg6*ZOo]E@@rmG,P"UU!P&
+-9^D0'3.L]W`4LanR(Oo]KDFGL$T!g6ZAB9I"mG_g!q;J^DaF,0p]99K<mF(99I!0U!2&!Cal!
+GumfF,0j[98Hi9Cm"g9F(99I!g6347$;AL!H3+&L]WA6P$!NQP%p/)LhDlKD0'3.L]NZ3L_#Yb
+Oo]E@@rmG-P"UU9P&-9^Dfp/X!Jgf?=GUUQC6EgtB9H/0F(99I!g634&!Cal!H3+&L]E55M#WW
+nLhDlcP'CnfFGL-8DJWm%P,X6<P,W/5Ch7L?!KmJH9RW'6Ou"b'Bl7?qBldiP8PXUT@W67,L]E
+TTHX_/,CibC4@W67,P"]=nF(I*a3HT0o0JejnP'&EeE,TfR!0T-dP#Qjm%[&V$@:WnjDdmEuHQ
+Zd@@;L"J5%8JLF-8_MGV<NFDf[%1E,TfR!KmJH1Lb<AF,1!_4aUdTDII?qF(I[0:48:)I?G)'1
+G;0a8RZ(<HQ[0HB-:oE!KmJ>#*MZ9!0TNmLbP!kOo^@GP&,Q08Vd_:;Na"q.$@2LLa\FcOuS1N
+iK@)p.$=Uo5)(fNP%p.>LiJSUP!4\AP%oE.<.0o>Ou"a[6V1a$DL3L1+Dl14+DHW4Oo^@CP"^Z
+3P!45K0TrDu!Jh)GCjhI<L^K;COuS*p!<<+_8pc9n!g5a13.q84!!&0[P!4O!!<<+_C6CQ2!<A
+9\P!4U$!0V)FH]g@C!<A9TH\MP%P!5$gL&h:;;Na4u!<A9tI=$\L!0TNoP#Zpn<F'qo@:WnjDd
+mEuI?I0MOq*X204f$26[OUiHYFUDAS6(+@<-IQ4aVtcHYFUDAS5RlA;CJRWKL))L]ET'I?IQHF
+(ZV:AS6(+@<-IQ98Hf8D0q'=P!FGY<,H\h+EM+,F*(i2FGKs\!Kp*3.?\OpL]ET'I?IQHF(ZV:
+AS6(+@<-IG!g3SI98GcpD0q'=P!FGY<,H\h+EM+,F*(i2FGL$^!Kp*3*g1AeL]ET'I?IQHF(ZV
+:AS6(+@<-IG"HieK99M8j0Tp%25);4^:m,jGL]ET'I?IQHF(ZV:AS6(+@<-IG"d/nL99M8j0Tp
+ %25);4^:m,jGL]ET'I?IQHF(ZV:AS5RlA;C8LWKKo1"HmVKL]ET'I?IQHF(ZV:AS6(+@<-IG"
+HieK98G9bWJCnECi+6++EM+,F*(i2FGL*`!Kp*30TrDu!KoF*3/@a$D3@)G3/@d%D3@)=%$GIj
+"Hin7P'(VMA!0**P#Q:>B-;8,B6/0'Ecd*AOo^_=L`MXqH]iN-!0TTqP#Q:>B-;8,B4YskL]Wa
+=P"UTPP&5Q/Fbg$\5^eepOuS7$P!+/TF_rfiP!FGY</:aA4aV$"2Ng=RP#Q9Q16OnNP(PE%DJ`
+flP!5$bBl7cr@u(,JD0mpQDe*E%6BX-/+@:6[Ci^_5DJ`flP"T('@:WnjDe"!4052PC+DG_1@:
+LEs@:PI;H\_oTH\_lSP#[YGOu&7dI?IQXP#Q-<F(K!*FCB33P!+/06tp:JFE8R=P"UT4P"L(*+
+@C<\Ci^_2DD@;I>p*QdA9;a"GB81q<,H\h+DI!3Ao9>d4`3Z%B5)I/+DHW4Oo^_=L]W`3Op$+b
+Bcq,G!KmJH1OYEcI?IQ.AThX&FCf$$<+TqiBp),9>9H:V@;L!-@;0SA95S`_+DHW5Oo^_=LbP!
+kL^K;]D0'>4BnukS!Kp*30TrDu!Gumj+DHW7Oo^_=LbP!kL^K;]D0'>4BnuqU!Kp*30TrDu!Gu
+mj+DHW9Oo^_=LbP!kL^K;]D0'>4Bo!"W!Kp*30TrDu!F6gVA7Te#@s;uIBcq,G$BbFQ1Qk"OP#
+OhXFEMFf+DI!3HYmh:+DI!3OuR&k0p4\_5*@m;DDIA<P!3Jq1QjnaEftHi>9H:V@;L!-D0'>4B
+p),P93iZKA7Te#@s;u:770WhBp),9>9H@%8RZ(<+C-*uA7Te#@s;uIBcq,G#Ef+N1Qk"OP#Q:>
+B-:oO94i&tP!*ktB6/0'Ec`F<P&6?bHS9(UBnueQ!Ko5lBl7cr@u(,J1G<f\B6/0'Ec`F<Ou"b
+4AS5RlA0>S/<GlnmCdi5P;e9SaBp),P!Ko7%5^eep052PCL]NY>Ou&7dI?IQ6+Dl14+DI!3LbP
+!kL^K;]D0'>4BnueQ!Kp*30TrDu!F6gVA7Te#@s;uIBcq,G!g3SI1Qk"OP#Ob^DIIR2+DI!3HY
+u5cB5)I/+DHW4Oo^_=L]ET7HYmh:+DI!3L&dm0Ap[`)6ZumSF!+q5@?O8LG%#3.+Dl14+DI!3L
+&caeWKKn[+CSekFDkZ5F+&BX>9H:V@;L!-@WQ"A91!f1Ci^_9F(ZV0P"UN0J<Hmp93iZKA7Te#
+@s<!BP#X/L+DHW4Oo^_%P!FGY<*LJ4G%#3.+C]&&P"T('@:WnjDe"!405YW<AKX<2:6IDr5^ee
+p05VgtBOtU_5p0m)99M(aDBM5YART+9+DI!3Ou$qtDN[hC>9H:V@;L!-Cggb893iZKA7Te#@s;
+uID/Wrr+@2/HP!FGY<,!IrAS6(+@<-IQ4aV$eB-:oO99M8j$'IH75*@m]*0NIJ5*@m]*KiRK5)
+:8C4d'iKEftHi>9H:V@;L!-Cggb893iZKA7Te#@s;uID/Wrr+@2/HP!FGY<.0p/DMSFY:jZCh6
+ZumSF!,:-@ZjAi+CSekFDkZ5F"_BKA7ZlMOu&7dI?IQ6+@C<\Ci^_'+EM.(+EM!I+EM!J+EM!K
++C-+-L]N[<P"Us2>p*QdA9;a"GB4mEHQZN86?ZdRF!,=@B-:oO99MqR+CSekFDkZ5F"_5MBnue
+Q!Ko6eP(So_I?K52Oq*X204f$26@4LhHS97Z<-!7O+DI!3Ou%!3!g60&DMSFY:jZCh6?ZdRF!,
+:-A!0Jj+CSekFDkZ5F"_BKA7ZlNOu&7dI?IQ6+@:6[Ci^_'+EM.)+EM$J+EM$K+EM$L+C-+-L]
+N[<P"Us2>p*QdA9;a"GB4mEHQ[0HB-:oO98ES2Ap[`)6ZumSF!,=@B-:oO99MqR+CSekFDkZ5F
+"_5MBnueQ!Ko6eHWqV0F(ZV0P"UTbP,X6EP&+uVB-:oE!KmJH98G9bWKI9f+CSekFDkZ5F"_5M
+BnuhR!Ko6eP#ZpnK9AKJP#OhXFEMFe+DI!3HYmh:+DI!3OuR&k0p4\_5*@m;DDIA<P!3Jq1Qjn
+aEftHi>9H7U@;L!-D0'>4Bp),P93iZKA7Te#@s;u:770WhBp),9>9H@%8RZ(<+C-*uA7Te#@s;
+uIBcq,G#Ef+N1Qk"OP#Q:>B-:oO94i&tP!*M%F(K!*FCB33P&6?bHS9(UBnueQ!Ko5lD/Wrr+@
+D;J055<@@:P)nOu"b4AS6(+@<-H4Bp(8*F(JuqDIal(+B<<$Bl$4UA5d&P+DI!3Oo^_%P!FGY<
+ %hr.BnueQ!Ko7%5^eepD0'>4Bp),F%?`kg+Dl14Ch7L?!KsFFAs*:DD0'>4BnueQ!Kp*3$BdQ
+!>9H7U@;L!-@rcCK93iZKA7Te#@s;uIBcq,G!g3SI1Qk"OP#Qjm<*LJ3G%#3.+Dl14+DI!3P"T
+('@:WnjDe"!4052PCL]NY>Ou&7dI?IPrBl7@"Gp$ga97''8FEMFe+DHW4Oo^_=HYmh:+DI!3L&
+dm0Ap[`)6?ZdRF!+q5@?O8LG%#3.+Dl14+DI!3L&caeWKKn[+CSekFDkZ5F+&BX>9H7U@;L!-@
+WQ"A91!f1Ci^_9F(ZV0P"UN0J<Hmp93iZKA7Te#@s<!BP#X/L+DHW4Oo^_%P!FGY<*LJ3G%#3.
++C]&&P"T('@:WnjDe"!405YW<AKX<2:6IDr5^eep6"jh<A3h>PP"UT3P!+.r+@:6[Ci^_?Ampi
+q6$?[QF!,=@B-:oO99MqR+CSekFDkZ5F"_5MBnueQ!Ko7%5^eep>9H7U@;L!-Cggb893iZKA7T
+e#@s;uID/Wrr+@2/HP!FGYK7/mmOu"b&DIYtZL]MiUDBMo!Gs`]gP"UroDMS@W8pbH3"HlT.>9
+H4T@;L!-Cggh:93iZKA7Te#@s;uID/Wrr+@D;JP!FGY<*LJ2G%#3.+Bot0An)s)@ko0J@l#6K@
+l,<6+Duu9P,XU;P"T('@:WnjDe"!4+DuNKD0'>4Bp),F!0Ur@>9H:V@;L!-D0'>4Bp),P93iZK
+A7Te#@s;uIBcq,G!KmJH1OXUS+Dl14+DI!3LbP!kL^K;]D0'>4BnueQ!Kp*30TrDu!F6gVA7Te
+#@s;uIBcq,G!g3SI1OYEdI?K5G5^eep6t(1[D*]:YP"U.=F(ZV0P"UrtAo9>d4d&!l3+d%`P!+
+slAo9Df4d'iKEdM"56$?[QF!,=@B-:oO99MqR+CSekFDkZ5F!*n=8K_`197'kc770XT@UgNd+C
+SekFDkZ5F"_5MBo!"W!Ko7%5^eepD0'>4Bp),$DDRG=BcqJ.B6/0'EcdI]Op$+bBcq,G!KmJH1
+G<T`A7ZlNOu"b*DJ`flL]ESo06:];F*(i2F<G:\1G<f\B4Ysk+DDruDKKT/7;cX7AS3-"P"Ur=
+Ou&7dI?IP_Bcq,G!KmJH1Qk"OP#PX.6$?[QF!,=@B-:oO99MqR+CSekFDkZ5F"_5MBnueQ!Ko7
+ %5^eep6>:=GEd8dAP"U-i@<?X/5p0lt!KmJH97(MsB-:oO983G>P%K&F+@10ZCi^_.F((5)6$
+?[QF!,=@B-:oO983FsP,XU;>p*QdA9;a"GB81Z+BosSG%#3.+C]D$P"S,b@;L!-D0'>4Bp),D!
+.^63P"T('@:WnjDe"!4I?IS`Bcq,G!KmJH1Qk"OP#PX.6$?[QF!+q+DN[Xu+CSekFDkZ5F"_BK
+A7ZlM8PYF)P!FGY <%i,3 6"jh< A3qDQ P" Uro DMSL[ :jZCh6
+$?[QF!,:-@ZjAi+ CSe kFDkZ 5F"_B KA 7Zl MOu &7dI
+?IQ6+@10ZCi^_'+ EM.(+ EM !I+EM !J+E M! K+E M!L+E M!M +C-+- L]N[
+<P"Us2>p*QdA9;a "GB4m EHQ ZN8 6?Zd RF !,= @B-:oO 99 MqR+CS ekF
+DkZ5F"_5MBnueQ! Ko6eP (So _I? K 52O q*X 204 f$26:j q! L]MiUD BMo
+!Gs`]gP"UroDMS@ W8pab bAn c-k Ch [s %6: jop >p*QdA 9; a"GB4m EL^
+0)>HWqUZ8PXG;Ci ^_@D .A` %? '5 4AD /Wr r+@ D;JP
+!FGY<*LJ38PXG;C i^_' + EM $J +EM $K+ EM$L +EM$M
++EM$N+EM$O+C-+- L]Wa=P "Us 2 >p* Qd A9;a "GB 4mEHQ[0HB- :oO98ES2Ap[
+`)6ZumSF!,=@B-: oO99Mq R+C S ekFD kZ5F "_5 MBnueQ!Ko6 eHWqV0F(ZV0
+P"UTbP,X6EP&+uV B-:oE! KmJ H98G 9bWK I9f +CSekFDkZ5 F"_5MBnuhR!
+Ko6eP#ZpnK9AKJP #Ok;8 K_`1 91!?1 @<-W 9Bo !"W!Kp*="F F>q770XUBl5
+&!+CSekFDkZ5F"_ 5MBo! "W!Ko 6Q+Dl 14C h7LI4aUBUA nc-kCh[s%6:
+jop>p*QdA9;a"GB 81q<0BL pP#Q:> B-:oO 98E S28p`m=DII R2+DI!36>:=
+GEd8dAL]NY>P"UsY6>:=GEd8dAL]W_?P"UsY6>:=GEd8dAL]`e@P"UsY770WhBnueQ!Kp)BBl7
+@"Gp$gW#a,4O99KF@EdM"5D0'>4Bp)+tA7Te#@VK^&>p*QdA9;a"GB5EO+DHW4Oo^_%Bcq86B5
+D-sP!+.r+D,>*@;KY!AO8s`+C-*uA7Te#@s<!BP#RT0I?IQXP#PX.Anc-kCh[s%6:jop>p*QdA
+9;a"GB4m@+Dl14Ch7L?!KsFFD0p,@B-:oO94i&tP!*M%F(K!*FCB33P&6?bHWqUZ8PXG;Ci^_@
+D0(k5>p*QdA9;a"GB5EO+DHW4Oo^_%05YW<AKX@'1G<H[D.-q1!0T,kF(K!*FCB33+DHup06:]
+;ASu$$BcpDnFD5P[DIc[WB-:oO99K==1Qk"OP#O_\ART+8+DI!36"jh<A3qDQP"Us7HWqUZ8PX
+G;Ci^_@D./T#>p*QdA9;a"GB5ESDe*E%6'=$PHWqUZ8PXG;Ci^_@D.8Z$>p*QdA9;a"GB5ESDe
+*E%6BX-QP#[Z1I?IQm5^efJI?G)'1G<6^F!+q#Ebo<)L]W`UL]NY>OpR:-05YW<AKX@'1G<3\@
+;L"@"d01T1G<3VDf^^7Ou"b*DJ`flL]ESo06:];F*(i2FGKp[1G<f\B4Ysk+B<<$Bl$4UA5d&P
+L]ET2Ou"b*L]ESo05?:COu%H!+Dl14Ch7LI8pc^dI?IQDDJ`flL]ETTHYIA7@:LEs@:PI;BcqJ
+.B4YskL]Wa=P!+s2HS9(UBnuhR!Ko6Q+Dl14Ch7LI8pc^dI?IQXP#Q.5D.-osD.-q;4_Z$[AS5
+RlA;C8LWKKE-"FDe9+DHW4Oo^_%Bcq86B5D-sP"L(a5^eepI?IQXP#PX=ASu!D04f$268)nf@m
+_n\DIZ"):*<gbD/WrrP"UsKP!=AXAM7P;F!+t:F,0g2P"_#p05b;C@s<!W@ZiN#D/!lrEb/Z%D
+IeP*Oo]H2L]W`;Oo^@FP&,pUOo^@?P&-:;Eaa'(Di"FVD0mpLB6585Bl7@"ARQ^%@<?4%Ou@B$
+EcdI#06_,@+Dkh1@<,pf+ECn4BlB/NF)c5BOu"b)+D>D0Ot;bP06\O_Bk3AXOu$boGEMu_!g7;
+S!KoTmBHVM^Ci*m(@<,pfP%K%oBHUuE!KmJH1G<qpGDH9_!Ko6eP#QjVBP2E0GEQcdBk/?"P&-
+:nHS9RcGDH9_!Ko6P+ErubD/!lrEb/[BApZ1T+ErVBP,XU#05)JAL]NY>Ou$boGEQcZBl7@"AR
+Ua6HS9RcGDH<`!Ko6eP#Qjm<.0*HBHUuE!KmJH1M@nTP&+uLDIIQs@?P5L05)JAL]N[<Ou"b8+
+ErVBOo^_%BHVM^Ci*m(@<,pfP%K%oBHUuE!g3SI1OYEcI?IQXP#Zpn<A/B2GB4m?Ou"b$DesQ5
+DK?qEOu%N5@rH1+D/OENs,oNl04Sp:F_u#;+Dkh1@<,pf+EDCEF-6Q[!KsF&Dg-8c;Na"[Dg-8
+c!Jgf?C5;kQ4aVtcOo]uo<0B%cP#QI?GB8T?P!+.FEc6/C+Dkh1@<,pf+Cf>+F_u#;Oo^@>P,V
+r0CisT4F-9Fa3+HlCF_u#;Oo^@?P%odQP!+/J!KmJ3P#RT#I?IQXP#X/QA8cR2+EDCEF!+t2Ci
+sT4F-:?q!g6HE1OF"ML]NY>OuS7!P#@)<Oo^^HL^B5\L]W_?DId[-F-9@HP!FGY<%i-"+Dt_G!
+KmJH1OYEt05b8BDIeP)P#@)<Oo^_%05btVDIal-A!-kU1G<c[D.74$F!,@2Dfg%CDKgmCP&,pU
+Oo^`FOu$ud+CfV:P%'SNHS8lQF!+[0@s<!W!g7\CDe*E%6:jq84aW!%I=$cbI?ITJA0>B+F-:!
+qWJCS<WI'G9I?K4gOu%NL<%hg#@ribsNX7Eo0eb=90eb>B#r"(f0eb=90en[p0JP790JP:90oc
+Po0eb=:0JP79NX7Bo0eb=90eb>B#r++g0JP790eeUo0eb=90ek@:0THGo0JP:90eb=9NX7Ep0J
+P790JP8A#r"(f0eb=:0eeUo0JP790eb=:0THGn0eb=:0eb=9NX7Bo0eb=90ekAB#r"(g0JP:90
+eeUo0JP::0JP790THGo0JG480eb=:NX7Eo0JP790eb>B#r++f0ek@:0JSRo0eb=90JP790ocPp
+0JP780ek@:NX7Eo0eb=90JP;B#r++g0JP:90JSRo0eb=:0JG480ocPp0JP:90eb:9NX7Ep0JG4
+80eb>B#r+.g0eb:90JSRo0ek@:0JP780ocPo0JP790JP::NX7Bn0eb=:0JP;B#r"%f0JP::0JS
+Ro0JG490JP790ocPo0JP:90ek@:NX7Bn0ekC:0eb>B#r"(f0JP790en[p0JP780ek@:0ocPo0e
+b:90ek@:NX7Bo0JP780ekDC#r"(f0ek@90en[p0JP790ek@90ocPo0ek@90eb=:NX7Bo0eb:90
+eb>B#r"(g0JP780en[p0JP:90ek@90ocPo0ekC:0JP79NX7Bo0ek@:0JG5A#r++f0eb=:0eeUo
+0eb:90eb=:0THGo0JG490eb=9NX7Eo0eb:90ekAB#r++g0JP::0JJLn0eb=:0JG490THGo0JP:
+90ek@9NX7Eo0ekC:0JP8A#r++g0ek@:0JJLn0ek@90eb=:0THGo0eb:90eb=9NX7Ep0JP780ek
+AB#r+.g0eb=:0JJLn0ek@:0eb:90THGo0eb=:0JP78NX7Ep0eb:90JP8A#r+.h0JP780eeUo0e
+kC:0eb=90THGn0JP790ekC:NX7Bn0ek@:0ekAB#r"%f0ek@:0eeUo0JG490ek@:0THGn0eb:90
+ekC:NX7Bo0JP::0eb;A#r"(g0JG490eeUo0JP:90ekC:0THGn0ekC:0JP:9NX7Bo0ek@:0eb;A
+#r"(g0ek@90eeUo0JP::0eb=90THGo0JG180JP::NX7Eo0JG490JP;B#r++f0JP::0JSRo0eb:
+90JG490ocPp0JG490JG49NX7Eo0JP::0JG5A#r++g0JG180en[p0eb=:0JG180ocPp0JP::0JG
+18NX7Ep0JG180JP;B#r+.g0JG490JSRo0ek@90eb:90ocPp0eb:90eb:9NX7Ep0JP780JP;B#r
++.g0ek@90JSRo0ekC:0JG480ocPp0ek@90eb:9NX7Ep0eb=90JG5A#r"%e0eb=:0en[p0JG180
+eb=:0ocPo0JG490eb=:NX7Bn0JP::0eb>B#r"%f0JG490en[p0JG490JG490ocPo0JP::0JG49
+NX7Bn0ekC;0JG5A#r"(f0JG490en[p0JP:90JG490ocPo0ekC:0JG49NX7Bo0ekC:0JG5A#r++
+f0JP::0eeUo0eb:90ekC:0THGo0JP::0eb:8NX7Ep0JG180ekAB#r+.g0JP::0JJLn0ek@:0ek
+@90THGo0ek@90JP:9NX7Ep0eb:90eb:eOu%,sGB8QAP%odQP!+.FF(ol1A7oIp+Bosm+Cf>+F_
+u#;L]N[<Ec6/CL]Wa=>p*@-!-3"%F,0m\WEgWN+Cf>+F_u#;L]Wa=Ec6/CL]N[<>p*@-!HN+&F
+,0j[WEgWN+Cf>+F_u#;L]N[<L]C^'>DN98!*p^QOu%N506:iPARoFbF!+[0>9IEoCisT4F,0m\
+WJCO[+BosuDesQ5DKCU8P,WJ?GB8Q@P,V_0>9IEoCisT4F,0j[WJCR\+BosuDesQ5DKCU7P,WJ
+?GB8QAP,V_0>DN98!*p^OL]DI6GB8Q@P,V_0?'7!lP#X/GD0C7K@rH1+D/OEXCm"gIOq*X205k
+uTCh[cu+EDCEF!+t2CisT4F-:@&$'I*#!/LYrDg-8Y!KsF/06r^EOu%moL]M"(CisT4F,0j[WI
+$:CP!5$bDfp/<Bl7K)GT_8SA8QK4GT_9p!Jgf?C5;nRWKMLSP":"a898KiARoFbF*f$JF`_G6D
+IntpOogehA8QLG!Kq\UP"@<:Ch7$q@rH1106iXDOu%3#F_)\?L]NYAL]VU8GB8Q@P,WeQP!3Dn
+Fs(jOD3@)G98EV34aW?7AmoLsAWf<,P#Qjm8:?X2Ou"b$Ch7$qEc6/K06r^EOu%3#F_)\@L]NY
+AL]V()CisT4F,0j[WI&n5A8QK4F*VVc5*AQp!KoTmP'(AFCia0N5^eepI?I-LOq*X204f<8Cia
+l=@W-(006;DUP!5$b06_>TF**'8R$N5b1Ktu+06i9Q>p*?)G_cB++BpLEL]C^'>;(8X!F6gRH]
+eGnFY@?CP!5$b04\d;P!5$b06;8QL]ESo04np=F**6<Ou"b-@<6OHs,o0o!/LYdBlYkOP!+/%D
+esQ5DKC5Q+EDCEF+'3OL]N[<HXpi2P!5$bF*VUFA8-(IA7TCp06iXCHZF%KF+&BX@rH1+D/OEC
+P#[;=P,W&0P&+ZCE\D^$4aW>UI?IQ?D0D(8L]NZ%HY-u4F**6<P!+.FAnc:,F<G+.Efssr1OYE
+c05P'<F<G+.Efssr1G<flD'3nBD284U!Ko6eP#Qjm898oj+DbJ-FHQZ:Bl\9:P,Vu+E\D[#4aV
+3fGB81Z+Cf>+F_u#;I?ITnCm$c%DfTo@P%K%oGAhMCFHShN1OXV5Fa]EQI?I/TE+NpC!0T-YDg
+-8Y!g7;S!KoTdDg-8Y%$G%^EdKH\F_up7Ou"b1L]ESoL]N;4@rH1+D/OEN!g9O0@r,^bEas$(H
+S9G_D'3nBD284U!Ko5lE$04ED284U4aV3fGB81Z+E/HDDg-8cCjhIHOu%N506;8QL]ESo05tK?
++E1n0+E3JEOu"b1L]ESoI?ITYP"76FASrW0ASrW0Oo^_%I?IQMDg-8Y!g7;S!0TKTDesQ5DKCU
+BP$sMoHS9G_D281T1G<^'!0T-o!JgbsDg-8Y!g9O0@r,^bEcQ)BHS9G_D'3nBD284U!Ko5lE$0
+4ED284U4aU[WCisT4F+&BXE$/Y/CisT4F-:?fP#[Z$I=!VgF_up7Ou"b1ASrW0ASrW0Oo^_%05
+u^IOu%NL<IL$$05tK?+E1n0+E3JEOu%NL<%i<<D/^V%+Cf>+F_u#;L]ikAL]W`UH\_ZMP(SPj@
+rH1+D/OD;F*VVc@Yb&JWI'F$P!4[%P!3r4D3@(mDesQ5DKCt7OogehL]E52I?I-2DesQ5DKCU:
+Oo^@?P&,K$!.C#_?'6us@rH1+D/OD;@rH1+D/OEN"HieK1G<ceGB4mIDg-8Y"HieK1G<flD281
+T1Pc*g!HN+&F,0p]WI$:DP!5$bH&)Ka"Gd,B!JgeeDesQ5DKCU9P,Wd]G`k7R1Pc'YF*VVA+F&
+\CP,W__!KsEmD0D(8L]NZ%H]gXBP#QLJD/^VBL]NY>H&)KaWFTjhP"UT3P!+/T5^eepF*VVA+F
+&\CP,W__!KmIoD0D(8L]NZ%H]gXBP#QLJD/^VBL]NY>H&)Ka!G$%jP"UT3P!+/T5^eepF*VVA+
+F##S+Co>4P"UT2P!+.FF*2=BF*2>U!KmJH1Qk"OP#QLJD/^VBL]Wa=Gp$X7G*5LS!KoTmP!FGY
+<-*>%E$0BJH&)NbWFTjhP"UT3P!+/T5^eepF*VVA+F&\DOo]hNA8QLQ98EV34aW>WI?IQNH#7L
+CGT_9f!g3RpD0D(8L]NZ%H]gXBP#O)UF_r7BF_up8Oo^_%I?K52P":"a82"IkCisT4F!+t2Cis
+T4F,0s^WKK%jEc6/C+EDCEF,0s^WKK%jAT23uL]ESoGAhMCFGKp[4aVtbF*VVY!+Tq`F_u#;P"
+^4c!I^,&L]ET$HS8rLASrW%E+Np?!!.hIOo^_%I?IQc!-<F&+EMgFP%%p>CisT4F-<M4DesQ5D
+KCt7H]eDXP"CH0P!+.FAT23u+D#M'DM.ul%7$'WOu%NL</:O1!+Tq`F_u#;+EMgFP%'4JP,WeL
+H#8^.P"Ur=I?I-W!0TKl04f*6DBNM0AT!/$"r`#T!Ko6eP#R5;@rH1+D/OEN!KsElDesQ5DK?q
+AH#8^RL]N[<HZOILP!5%%Oo]uo8;I8/4aShnE+No0AT23uKE)E<!0RAG1OYEcI?IQRDfTo@+EM
+[B+EM[BP&-;\E+NpMWF^$[DN^uIOq*X2062,BCi<r/>DN<9E-ma-L]`fVLiJSmI?K4gOu"b4FC
+fD6DKgnUP#@):Oo^_%05kH7F(KH?+EMX9E0>$YFCB33Oo]uo%[&V$@V'V&F(9-/AVBme*s%N\0
+5Y-=CNCV8@<64?s,q5G>9IckF))n(I=!)K@<6O;+BsX(L]WA5L]C_/HQZOK!/LZ3!f-qaI?ITY
+P#[Z$05P?ED..L$F,0s^$'I)]@<64*HS95EF)-q&Ou"b3F(9E8+Bot*@<63,>DN98",I2<&R?M
+r@<64I98ERXGB8+e!KpQJ!Jk`YC6Cc:!g6ZK!KoX&",Hu@LOG=WP')q1DI\$L!.C#_?'7""!/L
+YsFCfEI!KsF/06;5DEcdI.Ou"ad6m-AXL]NY>F*(i2FHWVEFCfES!Jgc>WH3/mE0=+^1G;L)+D
+uCZ!KmJ)FCB33P,WMEAT3e5L]N[<F*(u4P#@H!02=kW:0/Q57$=O41G<6VAS,Oq+BsX&:.'Aa!
+.C#_?'7""!JgbO6[LJ#P!5$b:.'j;L]MiUC6CcD1Lk?7AnH*,C*7#)AS,Oq+DR'4LiJRYEcYZ*
+DeC2,P"T;'AS,Oq+DQ]5P,XU;P&,qoP%p/ZLiJSmP'DD<8:?XlL]E53:.0m=P,Wd]FHSh.F(9E
+8P!3erAohO*P"Th:@s;u::.-4CAnH*qFHT:[!Jk`YC6CB/!/LYN6\kf,WI$:5P!5$bEcY`7F!+
+4G+DR&?De<U&ATT&8F(9E8+AP<IC6AUR!KmJ%AnH*qFHT:QEKU?E+Cf>$AnH*,C5;nR!Kp*=Cl
+!(oC6GQPEKY("G^Y`GEcY`7F!+4G+AP:e!Jgc>WGcB\F(KHLEHE=5De3NmF!+4FP"UsSLiJSmP
+,X7WP%p/)I?I,r7#1k==,6m?WI'dfEcY`7F-8_*AnH*qFGOpWF(9E8L]rV7P)!sfAohO*P"Ut;
+LiJSmP'DD<8:?Xl04JX;F!,@2Dfg&`V33WDBlnEP!*bHb0JJLg0JSRh0eeUh0elrVD..L$P"Us
+`L]N;4DKgF\Bp(ZC1Lb'?F!,1Q!KsF<$'K+\!g3RqDI[`1EcY`7F!,1[99Mr2H$tiHEb0)sBln
+EP!0U0*@VKq*+DuCZ$'K+\!g3SE&MZ!p0ekC;0ekC;0ekC;0enIaEb0)sBlnEZ9Tj[LP#O)RBm
+=\ADfp/<Bl7LF30Ia6$'H0h1G<]cF*NK@Ou"b1Df^1HEc6/CL]W`SL]ET$H\_ZMHZF%KF,0j[W
+I9q0Ou$Q]FE<6<@VKq*P%'4OP,XU<H[B^GG]P!HDf^.GE,TfC+Co>4P"UW2P!+/T5^eepEc6/C
+L]W`SL]ET$HS9>VF*SmIDf^2[!KmJH1N78RGp%-GGB8p1HS9>VF*WQAOu"b1Df^.GE,TfBL]NY
+>Ou%NL<.0*HE,TfB+E27?G_cB`!Ko6XDf^.G@rH1+D/OEX4aSi$Df^/Z!0T,kE,TfC+E27?H&)
+KaWKK&cP#Qjm<IL$AE+sQ<+E27?GT^sDF*Sm=D0C^;M#WWnLbP!kP'DD<8VdA&!Jgo+056S5Ou
+ %&kG]P!KBm=3"B4Z-,Bp),P!g7\:D0@%2BlnD=@VKq*P%'4OP,W/Y!Kp*30TrDuG^Y`G06:WA
+Eb-A4Bm=\AAThKuF*VV3DetRmF(9-/AKYGnF*)J5DfTEP:jXj)ATMs7H#4[CBm=]^1G<3KF*)J
+5DfTD3F(9-/AWei]@<6N5@V'V&F(9-/AKZ#3GB4m:DesQ5DKCtWL]W`;P#.;EH]gXBP#Qjm<%i
+'%FDYH-CERS1G]T$-P%'R\Or9E=L]E53L]r,YBp(ZC1MgcID..L$+EM7AARoFbF!,1[99K@>F_
+#?4L]NZ`I?I-;Bln3#F),h>D..L$+Dbb6D..L$P'CSIF*)a^F(9-/AKYf'FDYH-CER23@;L"1D
+.7F"Ou%/hDfTD3@V'V&F(9-/AWfl:04JL6FE;_E+Dbb6D..L$Ou"b#ATMs7@rHC!+EM%2Eb1Ci
+@V'V&F(9-/AKZ#3GB4m:DesQ5DKCtWL]W`;P#-Lg5^eepI?IQXP#Qjm8M>$sG]P!:ATMs7H#8^
+#Amob&P&OlAF*)J5DfTD3Ec6/C+Cf>+F_u#;P&,pUP#@HOOp$+b@V'V&F(9-/AVBme*s%N\D..
+L$F*f$GBln3#F),i[5*APlCh\!.@<64I5*@]TF(9-/AKYf'FDYH-CER23@;L"1D.7F"Ou%/hDf
+TD3@V'V&F(9-/AWfl:04JL6FE;_E+Dbb6D..L$Ou"b#ATMs7@rHC!+EM%2Eb1CiI?IQXP"@<GB
+m=\A@V'V&F*VVc1OYEc4?P9;ASs.SEb0-*@<?O(GV<TGFEDdNFE2M805tWMF!,F9G]PNWBm=kF
+@rH1+D/ODJE+sQB+EDCEF"_3<BkM+$+EDCEF,0m\CktWF2D98gA9;K-@rH1+D/OEN!g7AU8<Pk
+aDfBe@DfBf4Df0V=5!C*"Df0Z-Eaa0TE%`kbASu?nFE2)?P#RT)I?G)'1G<9WFCT6"AWf$9A1r
+(@/n8fPFCfK5H"(o:FDl%L@WuO*E$/\&Anc-oEb0<1F`Lu'P')pJ06:]HE+*6lBl7RH\pKT_F(
+KH4@:O(eDJ+B\;u~>
+% uk.co.terryburton.bwipp/dotcode 0.0 2018052000
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+2 2 scale
+0 0 moveto
+<5468697320697320446f74436f6465>
+<696e6b7370726561643d302e3136>
+/dotcode /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/gs1dotcode-1.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/gs1dotcode-1.eps
new file mode 100644
index 0000000000..5d7260d509
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/gs1dotcode-1.eps
@@ -0,0 +1,769 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 120 34
+%%Creator: Online Barcode Generator 2020-12-28. https://the-burtons.xyz/barcode-generator/
+%%CreationDate: 2020-12-28 22:54:10
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2020122800 30005 33214
+%%BeginData: 7 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+P1OerF_-`n01TSk ATDK p010/ iAS5q %H '6m E30Ia ,!KmJH
+23Ji?3%mj@F*(i. @qA VbE+L \DATV m" @r# drB 9KiQ
+P'&Es@:O(aA79M! @<ls? E+ OHE04 AmA@ <l s?E +OH\< K_S [F_`U >D_?
+-CEcQG7F`MSBDD# CBBlJ $S4 tf9 3FCf *' Ed8 d<AS,X oA TD@'Df p)1
+AWh2!hZ~>
+% Category/uk.co.terryburton.bwipp 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2020122800 39417 39248
+%%BeginData: 10 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23J D%Ea` [' AS# n&D fU1I
+,\;":DfV")04f0E DfTQ0 Ao EhrP' A6`E cQ )=P !1O1E cQ) =DIIB nP!5
+ %R,\;":DfRL@Df '?"DI eoM P'A 6`Ec Q) =05 b?FATD g0 EZfIEF _-_
+\P+mA/04J@1@rGm h+C0> WEK W,+ P "Cf HOu "b3 @;0doA TD g0EfrD FA1
+r(@/n8fPFCfK5H" (o:FD l%L @Wu O* E$ /\& Anc -oEb0 <1 F`Lu' P')
+pJ06:]HE+*6lBl7 RH\p KT _F (K H4@ :O( eDJ +B\;
+u~>
+% uk.co.terryburton.bwipp/raiseerror 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp parseinput 0.0 2020122800 58913 58556
+%%BeginData: 32 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: [?23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO ps'`@ <-F #Bl7m 4FF/
+fJOu8C304o*3G%# 3.P!5 $b0 4J@ 1@rG mh P!5 $b05t? ?F (LLoOu R&k
+@s29sF-8_M99M)C DI[iu Cib b'P - cl] @<- F#A o;+A30 H7 5DI[iu Cib
+b'P"UroAo;+%@;L "J5*E 9+E +*d .A T) I&H '1. M3+d& <G %#3.P !5%
+:Ou$]f@s29sF-8_ MZnH !# Bp (H =3+ d&< G%# 3.P!
+5%:Ou$]f@s29sF- 8_MZ n H9 ;B -:Y lEa s#uA WgMc$
+'I(tC5;kQ1Lad5@ rGmhH] A,5 P )YV gO uSV6 P!3 `(B9GGnP!3 *55'q^@8R7L
+)C6ATNC6CcD1OG: -L]MjA @<- F #P&P AKEc Yf( DI\iKOp$,K F(ZV1LgH6h0
+5;VEL]NY>Ou&7dI ?IQHF( ZV1 LgH6 h05; VEL ]NY>Ou%&cE cYf=OuSV6L]
+`f4H]g@E!/L`?9Q Y;tAW f6(O uS7O P%Kk @Lc LVpP&bo4F_ 5&uF(Kc_<.0
+p$H]g@E!/L`?9Tg ri3/. G5P#- LgFcp l#@ WuO*E%YjBG %#3$A5@5VBl
+7?qNZ(]6A8,piC` mS;F*&O 6AKWZ\ 0HbIU +>P f30/%?SBld isEcQ)=P!=A
+X<%hu/C5;nRWKK&SF(^Y"C6CcDGV<eSC5;nR!Ko7%30Ia,"-TX>"-Pj29RW('I?IQXP#QC/EcY
+f1DJXS@E+*d.AS,giP&QS)D0'>4C5;nRWKKo1?BT/gEdNs7I?IP_C*78I!KsFF1Qj_\@Yb,LAp
+]\`04K->E,[FOEcl80@<?'k7SZ=2*(G'g@ruF'DBNG&@<,ddFCfJ8FE2MA@psIjA1oTV@;0doA
+TDg0EfrY8P#RT(L]ET2LgH6-HYmh:+DQ^=P'AWp+DQ]5Oo^_%OuSV6L]N[<L]NZ&P"_$(I?IQm
+3/@Qj"-Q?<"%>RKP!*AdBp&UGOuSV6L^B5VH]iM)@WuO*E%Z6QF`(\tFCeuO6V3:I770WhFE2M
+A@psIjA1oTV@;0doATDg0EfrY8P#RT(L]`G;P"_#uH]g@E0Tp%25);4^:m,jGP')q104K->E,[
+FDDK]H)Bk0Y"8WFcZ6V/D;F`VXI@V$Z90JG170HbIU+?;GB3B9)Q061K8F(Jp'Ec5u]5CJ\oI?
+I0X!0TNmLbP!kP,X6EP&,Q08Vd_:;M5#\69p^5D0'?Q5&-6EP'AWp+DQ]5Oo^_%OuSV6L^B6DL
+^B5.P"_$(I?IQm30Ia,"HmADP'&EeGA2#8/p),VDI[*sARn8*6]N-UF`(]2Bl@l3@q]:k@:OCj
+EZfIEF`(\tFCeu9061K8F(Jp'Ec5u]5CJ\oOuS6tL]il7OuR&k@s29sF-8_M@$5JUOuSV6L`DQ
+YP,4=$L`D3RM#WWnP'N3ML]EGT<GlSiDg-(AAp&!$FD5Z2+Cf(nEa`I"ATBgSP'N3SP'&EeGA2
+#8/p2&IDJs`:7SZ=64teR0@;0doATDg0EfrY8P#Q%2@s29sF-8_M95S`_P!3WD5*C.DC*78I!K
+mJH1Qj_\@Yb/MWJC\?5*AU&5^efJI=%,BI?ITYP%AT@EcYf1DJXT]E-lGCB8?P&P"^:NC6GEL!
+/LYjL]N[<H\_]c=HYk23,N_LP!5%%P'DD<8:?Y$Ou[qp04J@1@rGmh+C0>WEKW,+P"CfHOu"b1
+@<-F#Bl7m4FHSVHA1r(@/n8fPFCfK5H"(o:FDl%L@WuO*E$/\&Anc-oEb0<1F`Lu'P')pJ06:]
+HE+*6lBl7RH\pKT_F(KH4@:O(eDJ+B\;u~>
+% uk.co.terryburton.bwipp/parseinput 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp gs1lint 0.0 2020122800 239217 234917
+%%BeginData: 277 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: U=23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO ps'WF "qK FDKL5 ]'Tt
+>:%52m5Cibb'Ou" b"Blf G$O u"b -Bl8 $1 F_t ]1Bk)K 4F E2M8P! 45U
+3/B8OAs,?63Kd4% EdNsl Amo LsA W f<, P#Q jm8 Wn%>P' &E eGA2#8 /k8
+hpDJsVlF_t]1Bk* /2:2b 4sD KTf -E bT #q@ ;L! rP!FG Y< .0o>O u"b
+-Bl8$&F(KGQ14(- cEck rV 5' r( dP, 4=$ L]E 56M#
+WWnP'E!b+X/3Z-R ^Dn. k E8 )0 /,+ 91G gsI2 `NfY4
+$5Yi5=%V'6q'R88 4cEH9M J8X : f1+ h< )lt# =BS g7@:E_WAS, RgBkhF"D/O9
+2EH6,BF`qtRH$YW ;P)YWD H]i N 7F_5 &uF( LM" I?IQmFcpm1 Fa]EEP&Pc2F
+Y@3JBlJ#D7oM-O@ :V`(78 u6% @q]: k@:O CjE fM#/DK]H)B k/>R;ajY.3&
+2UdBOPpi@ru:&Am oLsAW f<,P #Qjm %[&V $Ch [d/@rl4'1H Be)FE2M8P!4
+5K!Ks:B3/@Qj"Gm )@LQZ nB-R1 2r0JP ==1 c70M3&s8k6 UX@47n?3D92
+&&T:Jand;cHat=' /U/P!5% gP&Pc2 FcplZ @;L !rP!FGY<0D BeFcplqP"Cg
+UH]iM)@WuO*E%XXZ0k+R%6W6EQ1HArY@<,ddFCfKQ)+e^h@;KXg+@B'r<$3tW+Cf(nEa`I"ATD
+BkCia0N5^eepI?G)'1G<QYDKKZ*H$b]6P%'4KP%K'(Fcpl#@WuO*E%XXZ0l(?G<,Z\RBQ%p5NY
+"ipGp$gB+EVO?+EM47Ecbo%Cia0N5^eepOuS6tP"UrtLbP!(P!4[^P#.<^P!4[&P"UrtLbP!(P
+!4[^P#.<^P&bo4FY@3JBlJ#D7oM-O@:Vkq:lZGhDf..EF_t]1Bk&8qDf'H%DL!@DEb/isG\1B#
+F(LM"I?IQXOq*X205P??FD5T2DfTr2EbT'/H]C?C0JP==1c70M3&s8k6UX@47n?3D92&&T:Jan
+d;cHat='/U/?X[DRA7]@cBPD3sCi+'.E,fo>FEMbNG^4Uu5*CngE-majP'&EeGA2#8/k8hp@UW
+e=D/aE6FCfJaDId='NYY3(G%#3$A0>T'E,Tc=ATAo-DId='AmoLsAWf<,P#RTeP')q1I?G)'1G
+<QYDKKB0F_uIJD..I#P!5$gP%'4KP%odQP!+/J"+>NP!I^,2P!45K0TrDk!KpQJCm$u<"Hks3W
+I9q$P')Q\OrK2XP,Wek!I^,`P!5%OL^K;[L]ETTH]iM)@WuO*E%XXZ0k+R%6YL%@CNFW8NXS6_
+A0>AqARfLsF_t`!Cia0N5^eepI?G)'1G<QYDKKT%@;^FT30Ia,"HmADP')q104K->E,[F";_`B
+4Dc:=fEcd<O8O>^<+EVO?+EM47Ecbo%Cia0N5^eepOuRQ(F_-_"H\_]cV33fo!/Lc6s,r/#G`F
+ %'0etOA2)[BQ3C,u!6q'R884cEH9MJ8X:f1+h<)lt#=BSgj5*CngE-majP'(AFCia0N5^eepP
+')q1P')298Wn%>P'&EeGA2#8/k8hp@UWe=6:"@VBOPpi@ru:&NYY3(G%#3$A0=H15u&P4BOPpi
+@ru:&AmoLsAWf<,P#Q:,Ebgh%D..I#P!45@P"CfUM#<EkOrKPjOpdF:P'),-0TrDu3/@m(:j\!
+'P,XU(L^K;CP!4[/P%oE.<.0p$OrKPjOpdF:P')Q\P!45U5)9Q/Cm"gT@?PARP"CH1P&5Q/FY@
+3JBlJ#D7oM-O@:Vqr5u(p'ARfLsF`!-T8O>^<+Cf(r@r$..D'3P1@rHC.ARfgo@;L!rP!FGY<.
+0o>Ou"b-Bl8$=ATD^9NWChsD0qFg04K->E,[F";_`T0Ec4ieEHPu9ARpf4>%M_m+DGm>Eb065B
+l[cqAmoLsAWf<,P#Qjm%[&V$Ch[d/DJsE=ATD^9+D,%uF(LLuH\aA=D0qFgFE2M8I?IQXP"CgU
+H]iM)@WuO*E%XXZ0m[DODbb4m:h=ZaBlnH.A<%:+ATD]3DJsV>E+O',BlnH.A7f7dF(LM"I?IQ
+XOq*X205P??FDc#CATD^.Eb/isG^GT5P%'4JP#.<*L]ET2LbOuTOp$,pFY@3JBlJ#D7oM-O@:W
+PQEc4cpAS,Y$NZ;56Ec3(>Eb/isGT^^A+Du+>+E1n4D/"*6ARoC]Cia0N5^eepI?G)'1G<QYDK
+L/LD/Ef;H]g@E!f-o@9Tgri3/@TuAs,?6%$FGMEdNsl04K->E,[F";__`iA5-u[FD-[D8T&][C
+h[E&D/X<6BP([hF(LM"I?IQm3/@Qj!g66?/<VuK'p>PZ3/BAR8pc_DL'MOX!I]<NcB;U_L'TW!
+!I]<L#LJV7I?ITYP#[Z)L&mC!C5;kQ4d&!l3/@^#C5;kQ4d&!bA<L\`!0V2^"Hme0L`_ETM#WW
+nH\`\jH\`YiP#[;[L`V?oL`V?oL`_EoL`_EoL`]oY!KpQ@!f-o@9Tgr_!KsFF99MJp"Gd,B9Tg
+riAp]\`04K->E,[F";__`iA40jONYG'&G%#3$A0>DkGp%$;+Dl%7FD,8pCia0N5^eepI?G)'1G
+<QYDKL/LD/EfoH]g@O@Yb5OD0qFg04K->E,[F";__`iA40jJAP?ZQB67gI(J/Lf@;KXg+DbV,B
+67f0AoD]4A79RkAmoLsAWf<,P#RT(L]iM8P"_#iL]NZNH]iM)@WuO*E%XXZ0k+R%6t(A$'M31c
+@;KXg+Cno++E(j7D/X<6BP([hF(LM"I?IQGBl8$<H#7D/0R])oOu"b-Bl8$+BPhU5OuS6tL]W`
+5Ot;D*P#-LgFcpl#@WuO*E%XXZ0k+R%88iWkNY>!%G%#3$A0>Q(F`JUCAftVmH"LK$F(LM"I?I
+Qc!f-o@9Tgr_4-EEeP'&EeGA2#8/k8hp@UWeABl8'8AW@[#DK]H)Bk/?'Bl8'8AKY])+EV:.+D
+>\9Eb8`rF(LM"I?IQXOq*X205P??FD,?+E-,r6F)u\k30Ia63/@X!D3@)G3/@^#D3@)=#*Nhd"
+Hin7P'&EeGA2#8/k8hp@UWeHBl.ETASu.&BT>,FDK]H)Bk/?&ASu.&BHUo*EZfI<D.Oi.AftVm
+Gp%<FFD)e8E-,f4DII?(D/!m/+CT.u+EM+(F(SisF(LM"I?IQm3/@Qj!g66?/;P+*:j\@JP'&E
+eGA2#8/k8hp@UWe<Dfp)\'1m(b@;KXg+D>\9EZf:4+Cno+AmoLsAWf<,P#RT(P%'4MP"L(a3/@
+Wl!g66?/;QBN:j\@JP'&EeGA2#8/k8hp@UWeABl8'8AW@[#DK]H)Bk/?'Bl8'8AKY])+EV:.+D
+>\9Eb8`rF(LM"I?IQXP#RT(P%'4OP"L(a3/@]n!g66?/;QBN:j\@JP'&EeGA2#8/k8hp@UWeGA
+RfXrA<%X$DK]H)Bk/?-ARfXrA0>T(+EV:.+Dkh1F`_2,@;L!rP!FGY<.0p/P')29%[&V$Ch[d/
+H"D&7DgRX,NWChsD3@)C!ATaSOp$,pFY@3JBlJ#D7oM-O@:V]CDerunDN5`4ASH7"ATAnI+Du+
+<+>G!NDfQtGATJu4EZf7<AmoLsAWf<,P#Qjm%[&V$Ch[d/GA1r*Bl7R1OuSI&0Tp:95*@mc!AT
+aSP!4m,3Ke6B"Hin7P'&EeGA2#8/k8hp@UWeKBl7HqDJ+tI8T&][Ch[E&GA1r*Bl7Q+A8-'q@r
+uF'DJ!<nF(LM"I?IQXOq*X205P??FDtr*@qBRjFDl80CjV=)P%'4KP%odQP&5Q/Fcpl#@WuO*E
+ %XXZ0k+R%:haKNAQ3Si@;JVKDJ+')NZ(K,G%#3$A0>i*ARf:)FDl80C`mP*DJ+')AmoLsAWf<
+,P#RT(OuSV6L]W`;L]ET%P"_#iOuS6tP!+/TFcpm1FY@3JBlJ#D7oM-O@:W2KARf:HF_tT!EfL
+i*DK]H)Bk/?*Bk:dc+Du==@V'Rl@;L!rP!FGY<0BG.30Ia,!g6HE30Hsu/<VuK!0TKlP')q1P'
+&EeGA2#8/k8hp@UWeDBk:dc<,ZkeClT3$DK]H)Bk/?.DffE(+Du==@V'Rl@;L!rP!FGY<0C()P
+'&EeGA2#8/k8hpE+rlnAOUiRAS#Cn<,ZkeClTE1Bk:dc+Du==@V'R&AU%]rARoj)FDl80Ch@*l
+F(LM"I?IQXOq*X205P??FDt`$DI\$?NWCGhNKS7-P')pQI?IQmFcpm130Ia,!g7/BP')q104K-
+>E,[F";__`iA5HiX@qBP"7<;sIE+P%@8T&][Ch[E&,p6c?@ps=fAmoLsAWf<,P#RT(L]E54P"]
+t<F_-_"H\_]cV33fo!/Lc6s,r/#G`EOn0etOA2)[BQ3C,u!6q'RR@Uiq[As,?@NKS7-P')q1Am
+oLsAWf<,P#RTeP')q1I?I0bE-majP'&EeGA2#8/k8hp@UWeDATD9lDKJ6Z@<-FL-V83!@;KXg+
+Cf(nEa`I"ATDi7AoD]4E+O'"ASuT4ASu!rA8,poAmoLsAWf<,P#QjmAUT^OOu"b-Bl8$&Dfp#;
+DI[TqAUBS_I?G)'1G<QYDKKB,F`;8:E,Tf9AnGUpH]iN"Oq*X2055KG@q-WD4<Ri]0JG=:0JGI
+>0JP770JP=90JPI=0JY=80JYI<0JYU@0JbF:0JbI;0JbU?0JkI:0JkU>0JkaB0JtO;0JtR<0Jt
+U=0JtaA0K(U<0K(a@0K(mD0K1[=0K1a?0K1gA0K1mC0K:mB0K:sD0KCg?0KCmA0KD$E0eb:70e
+bF;0ebR?0ekF:0ekR>0etF90etR=0f(R<0f(^@0f1R;0f1^?0f1jC0f:^>0f:jB0f:pD0fCd?0
+fCpC0fLd>0fLpB0fLsC0fM'F0fUj?0fV!C0fV-G0f^sA0f_!B0f_-F1,(L;1,(O<1,([@1,1O;
+1,1U=1,1aA1,:U<1,:a@1,CX<1,C[=1,C^>1,Ca?1,CmC1,CpD1,La>1,LmB1,LsD1,Ua=1,Um
+A1,V$E1,^g>1,^m@1,_$D1,_*F1,gm?1,h'D1,h*E1,q6H1-%*C1-%6G1GCL91GCX=1GCdA1GL
+X<1GLd@1GUX;1GUd?1GUpC1G^d>1G^j@1G^pB1Ggd=1GgpA1Gh'E1Gpp@1Gq'D1H$p?1H%'C1H
+ %3G1H.'B1H.3F1H7'A1H73E1H7?I1H@3D1H@EJ1b^U:1b^a>1b^mB1bg[;1bgg?1bgpB1bgsC
+1bpg>1bpsB1bq$D1c$g=1c$sA1c%*E1c-m>1c-s@1c.*D1c6s?1c7*C1c76G1c@*B1c@6F1cI*
+A1cI6E1cIBI1cR0B1cR<F1c[<E1c[HI1c[NK1c[QL2)$^;2)$j?2)%!C2)-j>2).!B2)6j=2)7
+!A2)7-E2)?s?2)@$A2)@'B2)@*C2)I!?2)I9G2)R3D2)R?H2)[3C2)[?G2)d3B2)d?F2)dKJ2)
+m9C2)m<D2)mBF2)mEG2)mHH2)mKI2*!BE2*!WL2D?g<2D?s@2D@*D2DHs?2DI*C2DQs>2DR*B2
+DR0D2D[$?2D[0C2D[<G2Dd0B2Dd3C2Dd<F2Dm6C2Dm<E2DmKJ2E!6B2E!<D2E!?E2E!HH2E*<C
+2E*HG2E*TK2E3HF2E3TJ2E3ZL2E<HE2E<TI2_[!?2_[$@2_['A2_[*B2_[-C2_d!>2_d3D2_m3
+C2_m?G2_mBH2`!3B2`*3A2`*?E2`*KI2`3?D2`3KH2`<?C2`<EE2`<KG2`<WK2`EKF2`EWJ2`N
+KE2`NWI2`NcM2`WWH2`W`K2`WcL2`WiN3&!$>3&!0B3&!9E3&*BG3&3BF3&<9B3&<<C3&<?D3&
+<BE3&E<B3&NBC3&NNG3&NZK3&WHD3&WNF3&``K3&iZH3&iiM3&rf<?$h_oI?I/c5*@]TCh[d/B
+le3&@s]>4F)PPuP!5%:P&Pc2FY@3JBlJ#D7oM-BDJO-.GA]cdF`);AH&`S=DJO-.GA\O5Dfor>
+Ed8d;De*Ek@;L!rP!FGY<.0o>Ou"b-Bl8$,F)PPuCh[s4H]g@O@Yb,LC5;kQD0qFgP'&EeGA2#
+8/k8hp6=FClDfor>Ed:>mF*()eDJ+')N[RY@F<G!7B6%p5E$0(2+EV:;AS!H(BkM.%+Cf>4DKK
+oE+Cf>#ATMHlCia0N5^eepFE2M8L]E55L]`fBP%'4JP,Wea!g6ZK5)9<(9PJQd@q1ZcP$jGlH]
+iN7F_5&uF(LM"I?IQXP":aTH]iM)@WuO*E%XXZ0i`+,DJs`:6Z7*bFE2Ye'NK$dDJs`:+Cf>4D
+KKoE+Cf>#AS,@eF(LM"I?IQmFa]D_Ou"b(F"q`]DKK<3+?Vb/>9H$j04T'7F>$BBD/!mD&he*1
+G_ctc@q]F`CEQh7Ch[d/@rld005P??FDGH5+C-*R4s4-k!\c<k5*@mgF^#tN4>12cATTS#05YE
+@L^l(T@<dS<04S[,@r!2k05P??FCTB7D(f^>DKKZ*Gp$B85!C)pNWLmhP!5$gNWLmiP!5$gP''
+tO4?P9,F(KGH=>+N*DMS<HD..[F'JEs0ARfKu>9I2o5!C)pNWLphP!5$gP''tO4?P9,F(KGH:+
+pHuDMSKMD..[F"tsJ"ARfKu>;'f,DKL/LD/Ef;+C-*R4s4-k!\lEm5*@mc!\lHn5*@mc!\lKo5
+*@mc!\lNp5*@mc!\lQq5*@mc!\lTr5*@mc!\lWs5*@mgF^#tN4>12cATTS#05YE@L]T5H@<dS0
+04S[,@r!2k+C-*R4s4-k!\uHm5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSB04S[,@r!2k+C-*
+R4s4-k!\uKn5*@mc!\uNo5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSJ04S[,@r!2k+C-*R4s4
+-k"#;YiP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F*\V#:ARfKu>9I2o5!C)pNWV$n0TnV_30
+"(r1bk.WOuSVI>9H$j04T'7F>$BBD/!mD!AA:uG_cPW@q]F`CEQh(>p)<p+C1!01,LbL5*@mgF
+^#tN4>12cATTS-05YE@L]K/G@<dSB04S[,@r!2k+C-*R4s4-k"#;\hP!5$gP''tO4?P9,F(KGH
+=>+N*DMS<HD..[F*\V#:ARfKu>9I2o5!C)pNWV$o0TnV_30"(r2)17XOuSVI>9H$j04T'7F>$B
+BD/!mD%52R,G_ce^@q]F`CEQh7Ch[d/@rld005P??FDGH5+C-*R4s2sM04T'7F>$`LD/!mD!&&
+1tG_cqb@q]F`CEQh(>p)<p+C1!01,UkN5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSB04S[,@r
+!2k+C-*R4s4-k"#;_jP!5$gP''tO4?P9,F(KGH:+pHuDMS`TD..[F%524)ARfKu>;'f,DKKB0F
+_rdJBl8$.AU,D(+?ht34?P9,F(KGH:+pHuDMS9GD..[F$nl+(ARfKu>9I2o5!C)pNWV$o23L.d
+30JDg+?Vb>@rl4'02=0;Bl8_-05Y-BL^5YDBOt[h+Boso+?ht3?&etB0TnV_30JDg+?Vb>@rl4
+'02=0;Bl8_205Y-BL^#MBBOt[h+Boso+?ht3?&f%D0eb;E5*@mc">_bd0p4_`30"+t0ebAG5*@
+mc">_bd1Qjqb30"+t0ebGI5*@mc">_bd23L.d30"+t0ekAF5*@mc">_be0p4_`30"+t0ekGH5*
+@mc">_be1Qjqb30"+t0ekMJ5*@mc">_be23L.d30"+t0etGG5*@mc">_bf0p4_`30"+t0etMI5
+*@mc">_bf1Qjqb30"+t0etSK5*@mc">_bf23L.d30"+t0f(MH5*@mc">_bg0p4_`30"+t0f(SJ
+5*@mc">_bg1Qjqb30"+t0f(YL5*@mc">_bg23L.d30"+t0f1SI5*@mc">_bh0p4_`30"+t0f1Y
+K5*@mc">_bh1Qjqb30"+t0f1_M5*@mc">_bh23L.d30"+t0f:YJ5*@mc">_bi0p4_`30"+t0f:
+_L5*@mc">_bi1Qjqb30"+t0f:eN5*@mc">_bi23L.d30"+t0fC_K5*@mc">_bj0p4_`30"+t0f
+CeM5*@mc">_bj1Qjqb30"+t0fCkO5*@mc">_bj23L.d30"+t1,(DF5*@mc">_ee0p4_`30"+t1
+,(JH5*@mc">_ee1Qjqb30"+t1,(PJ5*@mc">_ee23L.d30"+t1,1JG5*@mc">_ef0p4_`30"+t
+1,1PI5*@mc">_ef1Qjqb30"+t1,1VK5*@mc">_ef23L.d30"+t1,:PH5*@mc">_eg0p4_`30"+
+t1,:VJ5*@mc">_eg1Qjqb30"+t1,:\L5*@mc">_eg23L.d30"+t1,CVI5*@mc">_eh0p4_`30"
++t1,C\K5*@mc">_eh1Qjqb30"+t1,CbM5*@mc">_eh23L.d30"+t1,L\J5*@mc">_ei0p4_`30
+"+t1,LbL5*@mc">_ei1Qjqb30"+t1,LhN5*@mc">_ei23L.d30"+t1,UbK5*@mc">_ej0p4_`3
+0"+t1,UhM5*@mc">_ej1Qjqb30"+t1,UnO5*@mc">_ej23L.d30"+t1,^hL5*@mc">_ek0p4_`
+30"+t1,^nN5*@mc">_ek1Qjqb30"+t1,^tP5*@mc">_ek23L.d30"+t1,gnM5*@mc">_el0p4_
+`30"+t1,gtO5*@mc">_el1Qjqb30"+t1,h%Q5*@mc">_el23L.d30"+t1,ptN5*@mc">_em0p4
+_`30"+t1,q%P5*@mc">_em1Qjqb30"+t1,q+R5*@mc">_em23L.d30"+t1-%%O5*@mc">_en0p
+4_`30"+t1-%+Q5*@mc">_en1Qjqb30"+t1-%1S5*@mc">_en23L.d30"+t1GCMG5*@mc">_hf0
+p4_`30"+t1GCSI5*@mc">_hf1Qjqb30"+t1GCYK5*@mc">_hf23L.d30"+t1GLSH5*@mc">_hg
+0p4_`30"+t1GLYJ5*@mc">_hg1Qjqb30"+t1GL_L5*@mc">_hg23L.d30"+t1GUYI5*@mc">_h
+h0p4_`30"+t1GU_K5*@mc">_hh1Qjqb30"+t1GUeM5*@mc">_hh23L.d30"+t1G^_J5*@mc">_
+hi0p4_`30"+t1G^eL5*@mc">_hi1Qjqb30"+t1G^kN5*@mc">_hi23L.d30"+t1GgeK5*@mc">
+_hj0p4_`30"+t1GgkM5*@mc">_hj1Qjqb30"+t1GgqO5*@mc">_hj23L.d30"+t1GpkL5*@mc"
+>_hk0p4_`30"+t1GpqN5*@mc">_hk1Qjqb30"+t1Gq"P5*@mc">_hk23L.d30"+t1H$qM5*@mc
+">_hl0p4_`30"+t1H%"O5*@mc">_hl1Qjqb30"+t1H%(Q5*@mc">_hl23L.d30"+t1H."N5*@m
+c">_hm0p4_`30"+t1H.(P5*@mc">_hm1Qjqb30"+t1H..R5*@mc">_hm23L.d30"+t1b^VH5*@
+mc">_kg0p4_`30"+t1b^\J5*@mc">_kg1Qjqb30"+t1b^bL5*@mc">_kg23L.d30"+t1bg\I5*
+@mc">_kh0p4_`30"+t1bgbK5*@mc">_kh1Qjqb30"+t1bghM5*@mc">_kh23L.d30"+t1bpbJ5
+*@mc">_ki0p4_`30"+t1bphL5*@mc">_ki1Qjqb30"+t1bpnN5*@mc">_ki23L.d30"+t1c$hK
+5*@mc">_kj0p4_`30"+t1c$nM5*@mc">_kj1Qjqb30"+t1c$tO5*@mc">_kj23L.d30"+t1c-n
+L5*@mc">_kk0p4_`30"+t1c-tN5*@mc">_kk1Qjqb30"+t1c.%P5*@mc">_kk23L.d30"+t1c6
+tM5*@mc">_kl0p4_`30"+t1c7%O5*@mc">_kl1Qjqb30"+t1c7+Q5*@mc">_kl23L.d30"+t1c
+@%N5*@mc">_km0p4_`30"+t1c@+P5*@mc">_km1Qjqb30"+t1c@1R5*@mc">_km23L.d30"+t1
+cI+O5*@mc">_kn0p4_`30"+t1cI1Q5*@mc">_kn1Qjqb30"+t1cI7S5*@mc">_kn23L.d30"+t
+1cR1P5*@mc">_ko0p4_`30"+t1cR7R5*@mc">_ko1Qjqb30"+t1cR=T5*@mc">_ko23L.d30"+
+t1c[7Q5*@mc">_kp0p4_`30"+t1c[=S5*@mc">_kp1Qjqb30"+t1c[CU5*@mc">_kp23L.d30"
++t2)$_I5*@mc">_nh0p4_`30"+t2)$eK5*@mc">_nh1Qjqb30"+t2)$kM5*@mc">_nh23L.d30
+"+t2)-eJ5*@mc">_ni0p4_`30"+t2)-kL5*@mc">_ni1Qjqb30"+t2)-qN5*@mc">_ni23L.d3
+0"+t2)6kK5*@mc">_nj0p4_`30"+t2)6qM5*@mc">_nj1Qjqb30"+t2)7"O5*@mc">_nj23L.d
+30"+t2)?qL5*@mc">_nk0p4_`30"+t2)@"N5*@mc">_nk1Qjqb30"+t2)@(P5*@mc">_nk23L.
+d30"+t2)I"M5*@mc">_nl0p4_`30"+t2)I(O5*@mc">_nl1Qjqb30"+t2)I.Q5*@mc">_nl23L
+.d30"+t2)R(N5*@mc">_nm0p4_`30"+t2)R.P5*@mc">_nm1Qjqb30"+t2)R4R5*@mc">_nm23
+L.d30"+t2)[.O5*@mc">_nn0p4_`30"+t2)[4Q5*@mc">_nn1Qjqb30"+t2)[:S5*@mc">_nn2
+3L.d30"+t2)d4P5*@mc">_no0p4_`30"+t2)d:R5*@mc">_no1Qjqb30"+t2)d@T5*@mc">_no
+23L.d30"+t2D?hJ 5*@m c">_q i0p4_ `3 0"+ t2D?n L5*@mc
+">_qi1Qjqb30"+t 2D? tN5*@ mc">_ qi 23L .d3 0"+t
+2DHnK5*@mc">_qj 0p4_` 30 "+t2D HtM5 *@ mc" >_qj1 Qjq b30"+ t2DI
+ %O5*@mc">_qj23 L.d30 "+t 2DQ tL5* @m c"> _qk0p4 _` 30"+t2 DR%
+N5*@mc">_qk1Qjq b30"+ t2D R+P 5 *@m c"> _qk 23L.d3 0" +t2D[% M5*
+@mc">_ql0p4_`30 "+t2D [+O 5*@ mc "> _ql 1Qj qb30" +t 2D[1Q 5*@
+mc">_ql23L.d30" +t2D d+ N5 *@ mc" >_q m0p 4_`3
+0"+t2Dd1P5*@mc" >_qm 1 Qj qb 30" +t2 Dd7R 5*@mc
+">_qm23L.d30"+t 2Dm1O5 *@m c ">_ qn 0p4_ `30 "+t2Dm7Q5* @mc">_qn1Qj
+qb30"+t2Dm=S5*@ mc">_q n23 L .d30 "+t2 E!7 P5*@mc">_q o0p4_`30"+t
+2E!=R5*@mc">_qo 1Qjqb3 0"+ t2E! CT5* @mc ">_qo23L.d 30"+t2E*=Q5
+*@mc">_qp0p4_`3 0"+t2 E*CS 5*@m c">_ qp1 Qjqb30"+t2 E*IU5*@mc">
+_qp23L.d30"+t2E 3CR5* @mc"> _qq0p 4_` 30"+t2E3IT 5*@mc">_qq1
+Qjqb30"+t2E3OV5 *@mc">_ qq23L. d30"+ t2E <IS5*@mc"> _qr0p4_`30"
++t2E<OU5*@mc">_qr1Qjqb30"+t2E<UW5*@mc">_qr23L.d30JDg+?Vb>@rl4'02=0;Bl8_-05
+Y-BL^5YDBOt[h+Boso+?ht3?&etB2j-@f30JDg+?Vb>@rl4'02=0;Bl8_-05Y-BL^u.KBOt[h+
+Boso+?ht3?&f%D3A<.M5*@mc">`%l0p4_`30"+t3A<4O5*@mc">`%l1Qjqb30"+t3A<:Q5*@mc
+">`%l23L.d30"+t3A<@S5*@mc">`%l2j-@f30"+t3A<FU5*@mc">`%l3KcRh30JDg+?Vb>@rl4
+'02=0;Bl8_/05Y-BL]];?BOt[h+BpL8Bl8$,F)PPu+C-*R4s2sM04T'7F>$BBD/!mD!AA:uG_c
+k`@q]F`CEQh(>p)<p+C1!11H@0DP!5$gNW_-u0enhTOuSI)1H@0FP!5$gNW_-u0f+tVOuSI)1H
+@0HP!5$gNW_-u0f>+XOuSI)1H@0JP!5$gNW_-u0fP7ZOuSI)1H@0LP!5$gNW_-u0fbC\OuSVI>
+9H$j04T'7F>$BBD/!mD!AA:uG_ck`@q]F`CEQh(>p)<p+C1!11H@3EP!5$gNW_-u1,4qUOuSI)
+1H@3GP!5$gNW_-u1,G(WOuSI)1H@3IP!5$gNW_-u1,Y4YOuSI)1H@3KP!5$gNW_-u1,k@[OuSI
+)1H@3MP!5$gNW_-u1-(L]OuSVI>9H$j04T'7F>$BBD/!mD"#"M"G_cGT@q]F`CEQh7Ch[d/Ble
+3&@j#&"5!C)O4>12cATTS#05YE@L]K/G@<dS=04S[,@r!2k+C-*R4s4-k">`%o0TnV_30"+t3A
+WCQ5*@mc">`%o16Oha30"+t3AWIS5*@mc">`%o1m1%c30"+t3AWOU5*@mc">`%o2Ng7e30"+t3
+AWUW5*@mc">`%o30HIg30"+t3AW[Y5*@mgF^#tN4>12cATTS#05YE@L]fAJ@<dS204S[,@r!2k
++C-*R4s4-k">`%p0TnV_30"+t3A`IR5*@mc">`%p16Oha30"+t3A`OT5*@mgF^#tN4>12cATTS
+#05YE@L^#ML@<dS404S[,@r!2k+C-*R4s4-k">`%q0TnV_30"+t3AiOS5*@mc">`%q16Oha30"
++t3AiUU5*@mc">`%q1m1%c30"+t3Ai[W5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSL04S[,@r
+!2k+C-*R4s4-k"#M\cP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F*\V#:ARfKu>;'f,DKKZ*G
+p$B85!C)pNWV*l0p4_`30JDg+?Vb>@rl4'02=0;Bl8_=05Y-BL_2:MBOt[h+BpL8Bl8$&F*2=Q
+Ch[d/CLqc6>p)<p+C1!01b^\J5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSL04S[,@r!2k+C-*
+R4s4-k"#M\fP!5$gP''tO4?P9,F(KGH:+pHuDMS`TD..[F%524)ARfKu>;'f,DKKB0F_rdJBl8
+$.AU,D(+?ht3?&f"D0eebSOuSI(1bg_J5*@mc"#M_fP!5$gNWV*m1Qjqb30"(t0f5%WOuSI(1b
+gkN5*@mc"#M_jP!5$gNWV*m2j-@f30JDg+?Vb>@rl4'03BlEBl8_-05Y-BL_MLPBOt[h+Boso+
+?ht3?&f"D1,+kTOuSVI>9H$j04T'7F>$BBD/!mD"#"M"G_cGT@q]F`CEQh7Ch[d/Ble3&@j#&"
+5!C)O4>12cATTS-05YE@L]K/G@<dS704S[,@r!2k+C-*R4s4-k"#MbfP!5$gP''tO4?P9,F(KG
+H:+pHuDMSBJD..[F"#".tARfKu>;'f,DKKT6De!9">p)<p+C1!01bphL5*@mgF^#tN4>12cATT
+S#05YE@L]K/G@<dS=04S[,@r!2k05P??FD5f7@q0=hF*&O1+?ht3?&f"D1,G(WOuSVI>9H$j04
+T'7F>$BBD/!mD"#"M"G_cGT@q]F`CEQh7Ch[d/Ble3&@j#&"5!C)pNWV*n1m1%c30JDg+?Vb>@
+rl4'02=0;Bl8_-05Y-BL^u.KBOt[h+BpL8Bl8$,F)PPuCh[s4+C-*R4s4-k"#MbjP!5$gP''tO
+4?P9,F(KGH:+pHuDMSBJD..[F"#".tARfKu>;'f,DKKT6De!9">p)<p+C1!01bptP5*@mgF^#t
+N4>12cATTS-05YE@L]K/G@<dS104S[,@r!2k+C-*R4s4-k"#MblP!5$gP''tO4?P9,F(KGH=>+
+N*DMS<HD..[F,;3P?ARfKu>;'f,DKKi-ASu!#>p)<p+C1!11c$g>P!5$gNW_0p0JS_SOuSVI>9
+H$j04T'7F>$`LD/!mD!AA:uG_egB@q]F`CEQh7Ch[d/E+<Hs@j#&"5!C)pNW_0p0J\eTOuSI)1
+c$gAP!5$gNW_0p0JnqVOuSI)1c$gCP!5$gNW_0p0K,(XOuSVI>9H$j04T'7F>$`LD/!mD!\\D!
+G_cDS@q]F`CEQh(>p)<p+C1!11c$gEP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F*\V#:ARfK
+u>;'f,DKKi-ASu!#>p)<p+C1!11c$gFP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F,;3P?ARf
+Ku>;'f,DKKi-ASu!#>p)<p+C1!11c$j?P!5$gNW_0p0enhTOuSVI>9H$j04T'7F>$`LD/!mD!A
+A:uG_egB@q]F`CEQh7Ch[d/E+<Hs@j#&"5!C)pNW_0p0f"nUOuSI)1c$jBP!5$gNW_0p0f5%WO
+uSI)1c$jDP!5$gNW_0p0fG1YOuSVI>9H$j04T'7F>$`LD/!mD!\\D!G_cDS@q]F`CEQh(>p)<p
++C1!11c$jFP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F'JEs0ARfKu>9I2o5!C)pNW_0p0fY=
+[OuSVI>9H$j04T'7F>$`LD/!mD!AA:uG_dCo@q]F`CEQh(>p)<p+C1!11c$jHP!5$gP''tO4?P
+9,F(KGH=>+N*DMS<HD..[F,;3P?ARfKu>;'f,DKKi-ASu!#>p)<p+C1!11c$m@P!5$gP''tO4?
+P9,F(KGH:+pHuDMS<HD..[F!A@qrARfKu>;'f,DKL/8F)Gn=>p)<p+C1!11c$mAP!5$gNW_0p1
+,>"VOuSI)1c$mCP!5$gP''tO4?P9,F(KGH:+pHuDMSKMD..[F"tsJ"ARfKu>;'f,DKL/LD/Ef;
++C-*R4s2sM04T'7F>$BBD/!mD">=V#G_cJU@q]F`CEQh7Ch[d/BP;7"+C-*R4s4-k">hni1m1%
+c30"+u1GUhN5*@mgF^#tN4>12cATTS#05YE@L^#ML@<dS404S[,@r!2k05P??FEr.KD.I0">p)
+<p+C1!11c$mFP!5$gP''tO4?P9,F(KGH:+pHuDMS`TD..[F%524)ARfKu>9I2o5!C)pNW_9p0J
+S_SOuSVI>9H$j04T'7F>$`LD/!mD!AA:uG_dCo@q]F`CEQh(>p)<p+C1!12_Zp@P!5$gP''tO4
+?P9,F(KGH:+pHuDMSKMD..[F"tsJ"ARfKu>;'f,DKL/LD/Efo+C-*R4s2sM04T'7F>$BBD/!mD
+">=V#G_cJU@q]F`CEQh7Ch[d/BP;7"+C-*R4s4-k"?/"g1Qjqb30JDg+?Vb>@rl4'02=0;Bl8_
+-05Y-BL]fA@BOt[h+Boso+?ht3?&f%H0JG>H5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dS:04S
+[,@r!2k+C-*R4s4-k"?/"g23L.d30JDg+?Vb>@rl4'02=0;Bl8_205Y-BL^#MBBOt[h+BpL8Bl
+8$<H#7D/A0>/#5!C)pNW_9p0K,(XOuSVI>9H$j04T'7F>$BBD/!mD"tsh%G_cPW@q]F`CEQh7C
+h[d/H$O7DA7Qfg+?ht34?P9,F(KGH:+pHuDMS9GD..[F"tsJ"ARfKu>;'f,DKL/LD/Efo+C-*R
+4s4-k"?/"g2j-@f30JDg+?Vb>@rl4'03BlEBl8_-05Y-BL]];?BOt[h+Boso+?ht3?&f%H0JGJ
+L5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dS804S[,@r!2k+C-*R4s4-k"?/"g3KcRh30JDg+?V
+b>@rl4'03BlEBl8_-05Y-BL]T5>BOt[h+Boso+?ht3?&f%H0JP8E5*@mgF^#tN4>12cATTS-05
+YE@L]K/G@<dSB04S[,@r!2k+C-*R4s4-k"?/"i0TnV_30",#0JYAG5*@mc"?/"i16Oha30JDg+
+?Vb>@rl4'03BlEBl8_-05Y-BL`S3ZBOt[h+BpL8Bl8$.AU,D(+?ht3?&f%H0JYGI5*@mgF^#tN
+4>12cATTS#05YE@L]];I@<dS104S[,@r!2k05P??FD5f7@q-We+?ht34?P9,F(KGH=>+N*DMS<
+HD..[F)_Y]7ARfKu>9I2o5!C)pNW_9p1GFtUOuSI)2_[$BP!5$gNW_9p1GY+WOuSI)2_[$DP!5
+$gNW_9p1Gk7YOuSI)2_[$FP!5$gNW_9p1H(C[OuSI)2_[$HP!5$gNW_9p1H:O]OuSI)2_[$JP!
+5$gP''tO4?P9,F(KGH:+pHuDMS<HD..[F!A@qrARfKu>9I2o5!C)O4>12cATTS-05YE@L]K/G@
+<dS/04S[,@r!2k+C-*R4s2sM04T'7F>$`LD/!mD!AA:uG_cAR@q]F`CEQh(>p)<p+?Vb>@rl4'
+03BlEBl8_-05Y-BL]K/=BOt[h+BpL8Bl8$,D/aE6FCfK,A9]5&+?ht3?&f%H0JkJH5*@mgF^#t
+N4>12cATTS-05YE@L]K/G@<dSB04S[,@r!2k+C-*R4s4-k"#hqgP!5$gNWV3p0p4_`30")"0f"
+nUOuSI(2_d+O5*@mc"#hqkP!5$gP''tO4?P9,F(KGH=>+N*DMS?ID..[F!\\%sARfKu>9I2o5!
+C)O4>12cATTS-05YE@L]K/G@<dSJ04S[,@r!2k+C-*R4s4-k"?/(l0TnV_30",#1,CYJ5*@mc"
+?/(l16Oha30",#1,C_L5*@mc"?/(l1m1%c30",#1,CeN5*@mc"?/(l2Ng7e30",#1,CkP5*@mc
+"?/(l30HIg30",#1,CqR5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSB04S[,@r!2k+C-*R4s4-
+k"?/(m0TnV_30JDg+?Vb>@rl4'02=0;Bl8_005Y-BL]fA@BOt[h+BpL8Bl8$1Df0l4Ec3(++?h
+t34?P9,F(KGH:+pHuDMSHLD..[F"YXA!ARfKu>;'f,DKKc7DL,l7D]i=.5!C)O4>12cATTS#05
+YE@L]];I@<dS104S[,@r!2k05P??FDc#7H=_,8+C-*R4s2sM04T'7F>$BBD/!mD!AA:uG_cAR@
+q]F`CEQh7Ch[d/GA1r*Bl7Q+>p)<p+?Vb>@rl4'02=0;Bl8_-05Y-BL]K/=BOt[h+Boso+?ht3
+?&f%I0JG5E5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSB04S[,@r!2k+C-*R4s4-k"?8(h16Oh
+a30JDg+?Vb>@rl4'02=0;Bl8_-05Y-BL]K/=BOt[h+BpL8Bl8$=ATD]3>p)<p+?Vb>@rl4'02=
+0;Bl8_905Y-BL^c"IBOt[h+BpL8Bl8$&F*2=QCh[d/CLqc6>p)<p+?Vb>@rl4'03BlEBl8_,05
+Y-BL_)4LBOt[h+Boso+?ht3?&f%I0JG;G5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dSL04S[,@
+r!2k05P??FDGH5+C-*R4s4-k"?8(h1m1%c30JDg+?Vb>@rl4'02=0;Bl8_205Y-BL^#MBBOt[h
++Boso+?ht3?&f%I0JGAI5*@mgF^#tN4>12cATTS#05YE@L^l(T@<dS<04S[,@r!2k05P??FCTB
+7D'3+,5!C)O4>12cATTS#05YE@L]fAJ@<dS204S[,@r!2k05P??FDtr*@qBRjFDl80C`m"+5!C
+)pNW_<q0K,(XOuSVI>9H$j04T'7F>$`LD/!mD!AA:uG_dOs@q]F`CEQh7Ch[d/BjtLg+C-*R4s
+4-k"?8(h2j-@f30JDg+?Vb>@rl4'02=0;Bl8_205Y-BL^#MBBOt[h+BpL8Bl8$<H#7D/A0>/#5
+!C)O4>12cATTS#05YE@L]K/G@<dS404S[,@r!2k05P??FD,?+E-,r6F)rI0+?ht3?&f%I0JGJL
+5*@mgF^#tN4>12cATTS-05YE@L]K/G@<dS`04S[,@r!2k+C-*R4s4-k"?8(h3KcRh30JDg+?Vb
+>@rl4'01.C0Bl8_-05Y-BL`S3ZBOt[h+BpL8Bl8$.AU,D(+?ht3?&f%I0JP8E5*@mgF^#tN4>1
+2cATTS#05YE@L]K/G@<dS:04S[,@r!2k05P??FDc#CATD^.Eb/isGT^975!C)pNW_<q0enhTOu
+SVI>9H$j04T'7F>$`LD/!mD!AA:uG_d%e@q]F`CEQh(>p)<p+C1!13&!'BP!5$gP''tO4?P9,F
+(KGH=>+N*DMS<HD..[F*\V#:ARfKu>;'f,DKKZ*Gp$B85!C)pNW_<q0f+tVOuSVI>9H$j04T'7
+F>$BBD/!mD&he*1G_ctc@q]F`CEQh7Ch[d/@rld0+C-*R4s4-k"?8(i2j-@f30",$0JPPM5*@m
+gF^#tN4>12cATTS#05YE@L]K/G@<dS804S[,@r!2k+C-*R4s4-k"?8(i3KcRh30JDg+?Vb>@rl
+4'03BlEBl8_-05Y-BL`%jUBOt[h+Boso+?ht3?&f%I0JY>F5*@mgF^#tN4>12cATTS#05YE@L^
+l(T@<dS<04S[,@r!2k05P??FCTB7D'3+,5!C)O4>12cATTS#05YE@L]fAJ@<dS204S[,@r!2k0
+5P??FDtr*@qBRjFDl80C`m"+5!C)pNW_<q1,b:ZOuSVI>9H$j04T'7F>$`LD/!mD!AA:uG_egB
+@q]F`CEQh7Ch[d/@rHL/Df0''A7Zlh+?ht3?&f%I0ekAF5*@mgF^#tN4>12cATTS#05YE@L]fA
+J@<dS204S[,@r!2k+C-*R4s4-k"?8+j0p4_`30JDg+?Vb>@rl4'03BlEBl8_-05Y-BLdj%-BOt
+[h+BpL8Bl8$&Dfp#;DK'N8De<TmEZeX15!C)pNW_<r0f"nUOuSVI>9H$j04T'7F>$`LD/!mD!A
+A:uG_egB@q]F`CEQh(>p)<p+C1!13&30AP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F*\V#:A
+RfKu>9I2o5!C)pNWM3pP!5$gP''tO4?P9,F(KGH=>+N*DMS<HD..[F=taB!ARfKu>9I2o5!C)p
+NWM3qP!5$gNWM3rP!5$gNWM3sP!5$gNWM3tP!5$gNWM3uP!5$gNWM4!P!5$gNWM4"P!5$gNWM4
+#P!5$gNWM4$P!5$gP'&rPOu%3#F_-@/L]M[-CibbKL]N[<H]g?sBlfG$P"RH:Bp(ZC1Nm2CF-8
+_M9.tHsCm$uF1M:b`F*VYF@<`o'Bp)kNB6,eKH#@_4GT^F/P"U-TE,ol9F-8_M1N7AQE-![L@<
+dr.G%#3M@Yb)K)3RgCP!4;W<0DBI@;M)jL]ET%P"[N?G%#3M5*@]TG%#20G%#20AThKuP%'S6G
+ %#3M@Zip<WKKr<1M(`<Cm&7HEc5o<05YE@P"UsMH]iM)@WuO*E%XXZ0m6uAF_+NjDc:=fEcd<
+J<,Z[tF(fK4FCnrtF(LM"I?IPl4>0G_Ch[d/DKTf-EbT#:=>+K)DKKB0ATTme01.C/Bl8$&F(K
+GL3?ULL+E2@>E-![BF(KHV99MqZG%#3M5*BH>5@o"HCm&7`!0U0*E,ol9F"_$:ARfM=97(5n@;
+M)jP%9_?I?I0MP#Qjm8Wl&rE-ma5I?IQQ@;M*9L]ETTH]iM)@WuO*E%XXZ0m6uAF_+NjDbP(eB
+9!6sDf6b7Df03"@;L!rP!FGY<.0+VFY@3JBlJ#D7oM-bDJO-.GA]]<NXo--Eb/a!B5VF)ARloL
+8S2CIF(LM"I?ITYP":aTH]g@O@UWu6@ZgbJ"d/nLV33fo!0..I8Ka1AOuS7"@;1mMOuS7"@;1m
+6Oo^RE3ZsT2OuS7$@;1m6Oo^@AM#WWnP'J]6Ea`['AS#n&DfV"*I?IQOEckrV3IP*b@UX:eDe*
+E%?$h`SOu%NL8WjRH1G<B^0l1QAFHSVHA1r(@/n8fPFCfK5H"(o:FDl%L@WuO*E$/\&Anc-oEb
+0<1F`Lu'P')pJ06:]HE+*6lBl7RH\pKT_F(KH4@:O(eDJ+B\;u~>
+% uk.co.terryburton.bwipp/gs1lint 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2020122800 91047 90077
+%%BeginData: 81 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO ps'bA Su? nFE2) ?H\`
+B!23JD%@<-"%P!5 $b06_ ,@F D-I 2Ou" b) ASG djFGKs \1 G<3GEa s$(
+DfUjAF`)83FHSF5 @UWb^ B6% p5D I d6q Ci= ?S" a+^(AT X( k04Sp: DfT
+]'E/k*EDKBB2Ou" b%Dfg )H+ D,% uF (L Lj0 55< >F)Z/ 2@ :Y/oO u"b
+*DJO<4Eb/ZiBSZY O1G< H[ CN FH 8AR T+m L]E So05
+5<6Cis9"FCf]=+D ,%uF ( LL j0 6DG \+B osoO u"b5A
+U&<,Des?4NWjQCF (KHV1G <i] G ]\1 =C h[O" NWj QCF(KHV1G< i]G]\4>Ch[O
+"NWjQCF(KHV1G<i ]G][P9 DKL m D6Z7 *fBk ;=J 1G<i]G]\"@ H=_m>Ou"b5A
+U&<ADe<U&ATW_.O u"b5AU &<B De<U &ATW _.O u"b5AU&<0@ ;p:D!0T,k@;
+L%-AU&<W!0T-HEb BH?Ou %NL8 T/Qi H]g1 5P" @<NBk2=!+E qO1FD-gjOu"
+b)ASGdjF<G7.BkM +$OtV tS04J @1@rH 1%E Zeh"Eas$(D fV!mOu"b#@:
+O(cEc6)<A7KOoDf Qt0@:O( cEc6)< A7KOo DfV !mOu"b*DJO <4Eb/Zi+DG_
+/F)Z/2@:YNSOu"b*DJO<4Eb/ZiBHV#,CNFH8ART+_OtVtS055<>F)Z/2@:XO(Bl7^-E,oMuA9O
++hOu"b5AU&<,Des?4+EV1>FCT6*DfV!mOu"b5AU&<A@;KXjDBO%4G]\1=Ch[O"OtDhQ06CcMFE
+q;2BkM<+FCf]=H!tN'B5WkaOu"b5AU&</Df0Y>FCf]=AoDR/OtDhQ06CcMFE;/BAKZ)+G]\"@H
+=`6mOu"b5AU&<ADe<U&ATT&:AU&<ADe<U&ATX(gOu"b5AU&<BDe<U&ATT&:AU&<BDe<U&ATX(g
+Ou"b5AU&<0@;p91FCf]=B45b#OtVtS04A[=FCf]=+CT).FCf]=OtDhQBl7^-E,oMuA;C5KD0mp
+MDJO<4Eb/ZiBHV#,CNFH8ART,41OYEcBl7^-E,oMuA;C5KD0mpMDJO<4Eb/ZiFs(L:CNFH8ART
+,41OYEc06hbTATW8AE+sQAP&-9^E+sQ<P!5%%I?G)'1G<6NATW8AE+sQAP&-9^@prk\AWf6?99
+KF+Oq*X204SsDFF001L]ilUL]ET$H\_c[!Kr4WBm=lcCm"g/@:Nt^P!4['Or9EUL]iP6P)#3@P
+'DD%P')q1P')29<IL#?Ou"b"@UiqqL]im;L]CY8"c3/@LN$sPG`lm+!KoE]Bm=]^5)99'9TfI?
+Fbg-Us,r.VBm=]^5&b4\G`i)`!g66?!g7\3H\_ce)2Ku0!Kq\jFbg']!I^,&P')29%[&V$EbT0
+"FF,-@Bl]"1P&5Pj+F,)?BlY>+E-67F>9J/5Gp$C@P#O)Z+F&\COo^_%04\d;L]NYpI?G)'1G<
+9WGA_aMA8-(?!g7DIGT_8SA8-',@rQR4+Bot5+F,)8I?IP_Gp%Bg!KmJH1G<9QEejd[1OYDrOu
+"b-AS-%2+Co2,L]ilXH[$ZY+Co2,+CfA5F<Fd1GT_8S?%%l806eUaL]N[<Ou"b%Bl]"4Ou%NL%
+[&V$F`;[MA8-(?#a0%OGT_8SA8-',@rQR4+Bot5+F,)8I?IP_Gp%Bg!KsFF1G<9QEek!a1OYDr
+Ou"b5Ea`HhHS9Z-5*@]TG`k7R1G<9QEZfU_!KmJ/L]NY>G^3q5FGKs\4aVtjI=$bQI?ITn1G<f
+o+F'&*06;C]H'0s:F(B!*+Co2,Ou$r`Ebg"EGT_8S@:E_WL]Mjc30H7]">DM`0p4\_5*@mc">D
+Ma0p4\_5)ob#0JP;F4d'iKEdNslEbT0"FHSn;P#RT(OuSI)0JG48P!+slOuSI)0eb=9P!+slNW
+_'k0eebRP&c_+H]iM^Dg-)^5^eepOuSUaNW_'j0JJYQP!5$gNW_'k0JJYQP!4m/0ek@:P!+tKP
+&bo4F_kW$FHSn;P#RT(OuSI)0JP78P!+slOuSI)0JP79P!+slNW_$j0enhSP&c_+H]iMoE0<J7
+P#RT(NW_'j0JS_RHXpi2L]W`&H]iMfAS-%I5^e!BF`M2/BQTD&I?ITYHXpi2L]NZ%H]iM^Dg-)
+^5^e!BF`hYd5^eeqI?ITYP(S!%F*Nj2Gp%0RP!+s2A8-',F(B!*P!+s2H]gXBP#QjmAWe!q$'G
+[Z5*C&:Oq*X206:]H@;^@#Des?4HS8fFH"1c/DfV")Ou$NaH"1c/DfV"ML^'#*H]A@o+<VdL+<
+Wk(#a2$I)3Qt8!F]kk@rH1%Eft^216OkKL&h7:2LU`[P+@#a<+0Zi@rH1%Efsmf#a.>tNX@lk+
+<VdL+<VdjL^K<AOr9EBL]Lq%H"1c/DfV"dOtr1bH\MP#Ou@`O8Wo9cP#Qjm%[&V$A9)+&CghU#
+EdKHYBm=];EbT//E+sQ<Ou"b1Bm=]^5*@]TE+sQ<+Bot-Bm=lY!g3S2L]DjdK89MHBm=kFE+sQ
+<P%'4JP,Wea!0TNbBm=]^5&b4\G`ka`!g7\^!.C#$E+sQAL]W_?H\_ZMP(R&'1G<]]G^(?MBm=
+lY!g3SI1G<]]G^1ENBm=oZ!g3SI1G<6H@q]Er>9Im!G]T$WH\_ZMP(R&'1G<]UFD,_<>DN98!H
+;atH&)NbWI$:5P!5$bL]E53E+sQAL]Wa=HS9)r5*@]TCER=6C*6qo@q:`YCQ8NO0JG5E4_p&\0
+eb:9P!+tKH\_rA+DN$/B4Z1@!0TKlBcq.5FE1f"AUT_@I?IQFNW_'k0eebRH\_f=+DN$/B4Z1@
+!0TKlBcq.5FE1f"AUT_@I?IQXP":"a86qB705tWMGT^s>G^,#GP,XU#05tWMGp%'?G^5)HP,XU
+#P&G;JFD,`B06!(<Ou"b-ASrW0P%'S1E$/t.DMS=VWKKo;!g7\FL]ET2OogehL]E53Ch7L?!Ks
+F/056S5Ou%&"BnueQ!Gl=bP%p.QOogehL^&\7P)"hsP#uF9CNFH8ART+_L]ilCL]iP6P)#34H]
+eDXH]k@VP#[;@L]NZoL]ilCBl7^-E,oMuA9Nb3P$!MCM#WWnP#-Lg!I]<XWI9q0L]iP6P)#2aE
++sQBP!5&.BnubP4aW?-I=%,eI?ITYP":`OP')q1P')q1I?I0b68*:lG]P!HBm=];EbT0L1OYDr
+Ou"b%Eaa0.@<lF)A8cR2HS9>PG]ReDBkJQ-Bm=]^1G<]]G]T$3Ou&8>L]E53E+sQ<P%'4JP,We
+k3,iSVG`lepG`k7R1N7&QG`krXH'1@S1O($f+F&0EATW_/P!+/:ME_(@!0RA%Bm=nGH'5.a56(
+Z`P,XU[G`"]c!!&/_E+sQB+F0-LME_(@!0X==56(Z`Bl7^-E,oMuA<NpJ!/:MfOp-8s<.0p#P!
+Ug@Bm=\AE+sQ<DfTQ)Ou%NL%[&W2:+p=!CNFH8ART*lBl7^-E,oMuA;C;M2NfjLBl7^-E,oMuA
+8!*"DJO<4Eb/ZiBSZ_Q2NfjLBl7^-E,oMuA9K)0DJO<4Eb/ZiG)-3_2NfkZ.$C]VBk2=!+E2%>
+G`jt@8<Re&ASGdjF<GO:G^5H1Le*\FP)G+rL]ETRE+sQAL]ETJE+sQA+E2%>H'2Zn!,uXsH'2[
+#(1L]^CM.[+F`(`"Des?4NWjQCF(KHVD0qF@@UWb^B6%p5DId6qCi=>:F(KH%DL#`1Ci=?W6BY
+&kP#Pq0Ci=?2@;q51F`)83FHSe604Sp:DfT]'E$.8*L]LsnEas$(DfQsa5*@^MP#Pq0Ci=?2@;
+pQ9F(KH%DL#`1Ci=>ICLqdS5*@^++E2%>F*f$FAU0G%H\_]NH\_ZMP#Zpn8R3HLDfg)HHQZj>@
+<ZNrH"D#,Dfg&KHQZj>@<ZNrH"D#EP#Zpn8T\NgFCT6*DfUjAF`)83FHUKfFCf]=@rH1%EZfF7
+FCB'4@rH1%Eda*MBl7EsF_#'*AU&<D+EV1>FEh51BkM=D"a+^(ATX(uFCf]=H!tN'B5W_5F`)8
+3FHSeM"CZ+gFCf]=NW>5*Op$+bF,0gZ1G<?XNW>4uFEhnSH[V&KL]W_WF-:C'5%\\qD3ApdL]W
+_W06<:?Ou"b'DN[2H1QmcHH]iN7Fa]EQP&$5RI?I0MHZWhDFCoH/F<G[:G]\"@H=`8"@;L%-AU
+&<W!0TKl06DG\+Bot1G]\:g!0U!%I?I0MP"ArB1G<ikFE/LGG]]*XP,4<tL]E53FEhnj@Yb&JW
+I'dfFEhnj5*AQ\F*)GY",Hu@LQZn1P":"J06D8WEZee,FED)=FHSG.P#ZUFFE3ORL]ET$H\_ZM
+H]h-eDhnCL!0V,X!AJ+oCia0N&X%3k"Gd)ALQZeCFcpm19p-VP:gn'UFB!O)AWgGJOruDS@;0V
+$<-`FoP"UT4P!+5?AmoLsAUT_AOruDVFE2;8AQNSVFD-hFOp$,p+>6Z8Ec5`)=(u2eBTc#E!g5
+Ht!0TO/+>63&DKJT]FE2)?P"UrsOuSV@P!5$gP&-9^F)c5BOo]uo<.0p006CcMFCB6#ASuUQ5*
+@]TFCf]=GA1T0BHVD<FE3PAP'(kfFE3ORL]N[<FCf]=B45b#P&-9^Ou"b5AU&<AE,Te?FCf]=G
+].2+F(KG9GT_*>G]\.DA9;LJWJCV=2Ne*(1N[2QFEh51BkM=D"DhX]FHSe606CcMFEhbCF!,R9
+G]\1KAnH*qFHSG.P#QO7G]\1=Ch[O"NWjH;B4uCM4aSi(AU&<AE,Te?GT_*>G]\1KAnH*qFHWV
+FAU&<@Bk2=!P,XU#I?IQOAU&<A@;KXjDN4s?AnGjjAos2!HS9JPG]\1LDf[%CAU&<@Bk2=!+EV
+1>FEh_9AohO*Oo^_`Ou%NL<-2\rFEh51BkM=D#]F<eEbT0"FHSe606CcMFEhbCF!,]MFCf]=G]
+.2+F(KHV!Ko6eP#QO7G]\1=Ch[O"NX'<AF*),.H'1=4AU&<@Bk2=!+F'&]Op$+bFCf]=G]7SBL
+]ESo06CcMFD#$$F!,]MFCf]=GA1T0BTf?:F*)Gc@Yb&JWKK0&1OYEc06CcMFEqhDF!,R9G]\4L
+AnH*qF<G[:G][A8@qBP"Oo^@>Oo^_`Ou%2kG]\4>Ch[O"NWij#Dg#]T4aSi(AU&<BE,Te?FCf]
+=H#I;,F(KG9E+sQBOo^@>Oo^_%I?IQOAU&<B@;KXjDN4p2ASuU$EfrS406CcMFEqhDF!,R9G]\
+4LAnH*qF<GO:G^1ERAU&<*F(8d!FHWVZ!g5I)!Ko6eP#QO7G]\1LDf[%CAU&<BE,Tf\CNO-4FD
+#$$F,0g<F*)Gc$@S(;I?IQm9p.Mb>;'GoEas#uAKY9*P&ZX@I?I0b%[&V$Eb0-*@<?O(G`k%LA
+1r(@/n8fPFCfK5H"(o:FDl%L@WuO*E$/\&Anc-oEb0<1F`Lu'P')pJ06:]HE+*6lBl7RH\pKT_
+F(KH4@:O(eDJ+B\;u~>
+% uk.co.terryburton.bwipp/renmatrix 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp dotcode 0.0 2020122800 231542 240206
+%%BeginData: 278 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO uP+6@ <-F #Bl7m 4FHS
+U:F_`U>D_?-CEcQ G7F`M SBD D#C BBlJ $S g6- ]D3%o; `D J`g(Eb Tc]
+3%oDi/n8fPFCfK5 H"(o: FDl %L@ W uO* E0A q<G `iLhA8 cR "De*F+ L_Q
+"0Ops'_E-,f4DKC t)Ou" b#@ <,j rA 7^ ofO u"b %Df0Z -E aa/7A moL
+sAWei&Ec6/CM#WV o04S p: F_ u# ;M# WVo 061 KCBl
+Ah-Ou"b1@<-F#+D ,%uF ( LL j0 5t? ?F( Js$@ j#AlC
+ia0N1G<cWG9CL+C ia0N1G <?K F *&O :@ ;L!r Ou" b.@<64?s,o 0VE-,f4DKCu
+E06;5UBl7R*H#R> X4aVtc Ou8 C 3DfB f4Df 0WC P,i2'Cia0N 4aW>WI?IQm3
+0Ia6V33Qn!BlU*F E2M8P! +/T /Wr; \Fcn qO1 OXV5/Tc#UA WeitP#ZpnAW
+e*t3A5;iFD5Z2F- 8_M1O YEcD fBf4 Df0W COu %NL8M>+&GB 4mIDg-8c/<V
+eB@rH1+D/OD;@rH 1+D/O EX/<V eBEaa '(D ]j(/FD5ZV0 9S+ED..L$+D
+kP.CQ^631NHoGBl Ah-P!*i (GB8T? P!+s2 @rH 1+D/OENs,o O."FDeB@<?4
+ %L]`G7OuAIZI?IP_Cggb.s,o/kCgge/rfT&jCggh0rK8ri@VK_9r/rihF(Sj:qiW`gF(Sm;qN
+<WfF(-n\q3!NeF(-q]pl[EdF(-t^pQ@<cF(."_p6%3bF(.%`oo_*aF(Sp<oTD!`F(6t]o9(m_F
+(7"^nrbd^F(7%_nWG[]F(7(`n<,R\F(7+amufI[F(7.bmZK@Z@WPt6m?07Y@WQ"7m#j.XFDYHB
+l]O%WFDYKClB3qVFDYNDl&mhUFDZ)Tk`R_TAo9>ZkE7VSAo9A[k)qMRAo9D\jcVDQ@rcCAjH;;
+P@;0S7j,u2OD(mi'ifZ)ND(ml(iK>uMD)!f%i0#lLD.-q1hi]cKAo;+%@;L!-4?P99@<-F#+E1
+b0F(I"D@<-F#Ao;*$E+*d.AS,gi04eX-+EVXHAW?m_:.$aJDD@.S7SZ<,Ao9CI5!G,c05YcC+C
+\c"@rGmh+D,M$G%#3.0/%9QEcYf+DK'`?P!>*c05YcCCh7K,D0'?Q@ZiN#DKTf-@qg"?!,ZdiH
+\DFg]tfe>H\_]c!I^,1I?I0b1G<TdB68!0+Dl14P%&<OD.R3kF,1$`Cm"g^$'I(tC5;kQ1Pc$e
+!GumjP%'4JP,WeFF(^Y"P"UrtK`CPT^li,QP&?'_L^0*>Ot_[mL^'#9H[V&KL^'"KOpc,JB68!
+0P!3W:!KmJH5*C2.F(]T3E$/m<Ao9AeGV<eSC5<+X!Ko6eHYmh:FDYu[5&-6EP'AWp+DQ]5Oo^
+_%I?ITYP"76CF(ZV4F(]T3E0<"1D0'?+ASrW-F(^YFOu"b$BOPpu@;p91>9I.++G_/#!\c<6+B
+sj,+cZRHNWLmh>p*@3!@!O),)u^Y10l#,NWCAb!@*U+0JcuW>E/_0NWCDc!\cH:+Bsj,-&r!PN
+WLml>p*@3!@Eg--B8-]2I.G0NWCMf!@Nm/0K38[>DO\`.#n?_3*dY2Lae-/NWLmp>p*@3!@j*1
+.ZOQb0O5f*NWCYj!@s030elrV>E/_8NWC\k!\lH9+Bsj,/WKi`NWLpk>p*@3!A9B5/rfuf1gM5
+.NWCen!ABH70f<5Z>E/_<NWCho!\lT=+Bsj,0oc8hNWLpo>p*@3!A]Z916)Dj3*dY2NWCqr!Af
+`;0f`M^>E/_@NWCts!\uH8+Bsj,23%\pNWLsj>p*@3!B,r=2N@ho10l#,NWD)!!B6#?1,E2Y>E
+/_DNWD,"!\uT<+Bsj,3K=,#NWLsn>p*@3!BQ5A3fX7s2I.G0NWD5%!BZ;C1,iJ]>E/_HNWD8&!
+\u`@+Bsj,4cTP+NWLsr>p*@3!BuME5)o\#0O5f*NWDA)!C)SG1GN/X>E/_LNWDD*!])T;+Bsj,
+6&kt3NWM!m>p*@3!CDeI6B2+'1gM5.NWDM-!CMkK1GrG\>E/_PNWDP.!])`?+Bsj,7?.C;NWM!
+q>p*@3!Ci(M7ZIO+3*dY2NWDY1!Cr.O1HA_`>E/_TNWD\2!]2T:+Bsj,8WEgCNWM$l>p*@3!D8
+@Q8r`s010l#,NWDe5!DAFS1c&D[>E/_XNWDh6!]2`>+Bsj,9o]6KNWM$p>p*@3!D\XU:6#B42I
+.G0NWDq9!De^W1cJ\_>E/_\NWDt:!]2lB+Bsj,;2tZSNWM$t>p*@3!E+pY;N:f90O5f*NWE(=!
+E5![2)/AZ>E/_`NWE+>!];`=+Bsj,<K7)[NWM'o>p*@3!EP3]<fR5=1gM5.NWE4A!EY9_2)SY^
+>E/_dNWE7B!];lA+Bsj,=cNMcNWM's>p*@3!EtKa>)iYA3*dY2NWE@E!F(Qc2*"qb>DQO?>`Jk
+D0O5f*NWEFG!F:]e2DJJ[>E/_jNWEIH!]Df>+Bsj,?]G.oNWM*p>p*@-!0.(fNWM*q>p*@-!KI
+1hNWM*r>p*@-!fd:jNWM*s>p*@-"-*ClNWM*t>p*@-"HELnNWM*u>p*@-"c`UpNWM+!>p*@-#*
+&^rNWM-n>p*@-#EAgtNWM-o>p*@-#`\q!NWM-p>p*@-$'#%#NWM-q>p*@-$B>.%NWM-r>p*@-$
+]Y7'NWM-s>p*@-%#t@)NWM-t>p*@-%?:I+NWM-u>p*@-%ZUR-NWM.!>p*@-%up[/NWM.">p*@-
+&<6d1NWM0o>p*@-&WQm3NWM0p>p*@-&rm!5NWM0q>p*@-'93*7NWM0r>p*@-'TN39NWM0s>p*@
+-'oi<;NWM0t>p*@-(6/E=NWM0u>p*@-(QJN?NWM1!>p*@-(leWANWM1">p*@-)3+`CNWM1#>p*
+@-)NFiENWM3p>p*@-)iarGNWM3q>p*@-*0(&INWM3r>p*@-*KC/KNWM3s>p*@-*f^8MNWM3t>p
+*@-+,GE,!]`,D+Bot0AmulmEbpa;3At.c>9Iur15H6s!]`2F+Bot0@P`f[NWM4#>p*>oF(-t^*
+KC1]3F*b3+EM!LL`Tu=D'3+,>9Iur2B['Q@3BAp@3Ahu>9I`j@N]Jq@3BW'@N\r!>9Ius1*CXJ
+1*CXI1*BjF>9Ius1E^aK1E^aJ1E]sG>9Ius1a$jL1a$jK1a$'H>9I`j@j#Sr@j#Sr@N\r!>9IN
+q0d((G0d((G0d'aE>9INq1*C1H1*C1H1*BjF>9INq1E^:I1E^:I1E]sG>9IBr@3B$#@3B$#@3A
+hu>9IBr@N]-$@N]-$@N\r!>9IBhDBND&DBND&DBN4-?'6us@q]:kG%#3.+BsYAOu8&<Ou8&8Ou
+6O.1Pc$e!FoeOEc#6(F-:!g!KsF/056S5Ou"b&DI[`1@q]:kD..C)+DI!3Ou%moL]N;5HS9,s5
+*@^5DI[`1C6D5Q30LHuF*)G:DJ+':E+P1qH\_Zb97;t&@q]:kG%#3.+DR'4P!3TCG^Y`GI?I,S
+6$?[QF!+t+@<-O"CibC4P"Uro01'hjCi^_/BOPq)@;L"@!Kp*=1I?7nCi^_90K"YpP'B<:@;L!
+-D(ml(@Zkt&G%#3.+DihgLguTm6?ZdRF!,=.@u+ZYGV;F-@;L!-@q]:kG%#3.L]W`4Ou"aX8PX
+G;Ci^^]4G[TR+EM$J+EM$K+EM$L+EM$M+EM$N+EM$O+EVI/+EVI0+EVI1+EVIA+C0>W5)96&!K
+oEjP"CgZ5!G,c05a0lB5)I/+Bot*F(]<#DMS=V!IKV&I?K4gOu"aiAThX&FCf$$<+Tqi>9Id(B
+5D-sL]NY>HY-]&F(Kc_K3aWr01A6"+Bot*F(]<#DMS=V!IJEeCia09P(R&'1G;.)FEMFd+Bot*
+F(]<#DMS=V!IJEeCia09P(R&'1G;.)FEMFe+Bot*F(]<#DMS=V!IJEeCia09P(R&'1G;.)FEMF
+f+Bot*F(]<#DMS=V!IJEeCia09P(R&'1G;(/DIIR2+Bot*F(]<#DMSR]!IJEeCia09P(R&'1G;
+ %-ART+:+Bot*F(]<#DMS=V!IKV&I?K4gOu"ajEd:"p>9Id(B5D-sL]NY>H\_ZMP(R&'1G;%-A
+RT+8+Bot*F(]<#DMS=V!IKV&I?K4gOu"aWBOtU_66KJTD0'?+AT!;)Oo]oc!.C#_?'6us<Glnm
+Cdi5P;e9Sa>9Id(B5D-sL]NY>H\_ZMP(R&'1Mq2GCh7L?!KsF<s+gZ%056S5Ou"b#@<,jk@<*K
+-F(ZV0P"Uro@UX:eBOPq;0To%;@<,jk@<./aP$sLVHYu5cB5)I/+DDs96tp:JFE8R=L]NY>P"U
+T3Oo^_jI?IPqG%#3.+C\c"@q]:kP$iW)@<?X/5p0kaFE2M8P'DD<<'kb:Ci^_.@<,jk@<.N=HU
+M:aF_sGfBcqM<F_-_\I?IP_6W-TI+D,%uF(LLj@UX:eBOPq;%?`kg+Dl14Ch7L?!KsFFAs*:DD
+0'>4BnueQ!Kp*3$BdQ!01/W27NcenF_-^lI?IQXP#OeH9La@O6t(1[D*f@Z+EVXHAWh:dP#Q<e
+BkM.%F!,1[98EY48p`s7FEMFf+DDs?EckrVG^Y`S@UX:eBOPq;!0Ur@6t(1[D*oF[+EVXHAWh:
+dP#Pn!EarckEeXREP"L'fBl7@"Gp$fDFE2M8P'DD<<,P*<B5)I/+DI!3L^K;;HYm23CERJ8B-:
+oE$Be)G!g7\^!IKVVP&5PX@;L!rP!FGY</<8lD0ol'Cia0N5^eepP')q1P')q1P')q1Lc:K6HY
+-]&F(LM"I?IQc0p6C#AmoLsAWf<,P#QODF_,uaK2Z?)ASuU$AStIYDBNYL",Qu?LQZnF'7H$CD
+FA2OBlnD=BnueQ!Kp*3#*MSqF(ZV0P"TD)16Oe`"FER)8K_^iFE2M8P'DD<<+99V@q]:kL]ETM
+@UX:eBOPp(Ao9DfD3>$K6"jh<A4%JR+@0[P@:V_JBnueQ!Kp*3!KmJHG^XpV6tp:JFE8R=P"UT
+3P$r]'BOtU_6Qg*!!0VSTHU2=V@:V_JBco]TART+:+DHW5Oo^_=L]NY>P'DD<<IL$1DFA2OBln
+D=Bp),F!0U/EBOtU_6Qg*+90m6&@:V_JBnueQ!Kp*=:m(s.<-!7O+DDraBOtU_6Qg*+99OOJP#
+OhXFEMFd+DI!3<-!7O+DI!3L]W`OOp#6&EarckEZet31QlU<"FEFJART+8+DDraBOtU_5p0lt!
+KmJH98EV3!Kq\UP#OhXFEMFe+DI!3<-!7O+DI!3L]W`OOp#6&EarckEZet31QlU<"FEFJART+9
++DDraBOtU_66Kuu!KmIN;G9Q,L]NY>I?IQm98EV3!Kq\UP#Pn!EarckEZet31QlU%<GlnmCdi5
+P;e9SaBcpDnFD5P[DIc[WB-:oE!KmJH98EV3!Kq\UP#Qjm82!8b!0T,k6APZ*1G;+O!g5>m6:j
+q."-PGn@:WnjDe"!4H]g?uGB8p2C6CcDGqWoq5*BAiOo^_%I?G)'1G<3GF(I*a3HT0o0Je&/Bl
+9(tOu"b*DJWm%+DG_V@ZiN#Bl5%tL]qL1Ch7LIWI'F$I?K4sDNY'aF^:.d05kuTL^'"KOu"b.F
+(025>9IWtL]E54P"_#?P'(&n1G<Td@ribs+Dl1/F-6TfFcnqC!<\L$Oo^@?H]g@EB9I"m5)<j7
+;LO^\?'6usCia',+Bot&DMS@M"-Q?@!g7\3Ou"b-F(986>9Ia'@WR\6P')pOL&hC>Cm"g^5(in
+:"ppH/Oo^@@H]g@EB9I"m5)<j7;LO^\?'7![F(99I!0TulF(99I!0U!2.["V2!H3+&L]rS9P$!
+NQP%p/)LhDlKCia*-L]NZ3Oo]E@@rmG+P"UU!P&-9^D0'3.L]NZ3LanR(Oo]KDFGL'U!g6ZAB9
+I"mG_g!q;J^DaF,0m\99K<mF(99I!0U!2>`rod!GumfF,0j[98H!!Cm"g9F(99I!g634.["V2!
+H3+&L]`G7P$!NQP%p/)LhDlKCia*-L]`f5Oo]E@@rmG+P"UTAP&-9^D0'3.L]NZ3Lg6*ZOo]E@
+@rmG-P"UU!P&-9^Dfp/X!f-o@=GUUQC6EgtB9H/0F(99I!Kp*3&!Cal!GumfF,0m\98Hi9Cm"g
+;F``E?L]W`ALhDlcP'DdqP#?.<@rmG-P"UTAP&-9^Dfp/X!/L`5s,r.nB9I"mG]._HL^%R2Ch7
+LIWJCS<WG-6dAT!;)Oo^_>I?G)'1G<?SDII?qF(I[0:4"*mE,TfR!0V2G@Wl0rF,0g*E,Tf\9O
+_FOAMQ,'FDilf1Qhg&FY@3CDf^^7Ou%NL<.0o>Ou"b"A7Te#@VK_,+C]M&Cibb'@W67,P!5%R0
+4Jm=F!+q2Df^^8Oo^_%@W67,L]rr)HY-u0@;KY!AO8s`I?IQXOq*X201A6"@:E_n+Dl14+DHW4
+Oo^@CP"^Z3P!45K0TrDu!Jh)GCjhI<L^K;COuS7GP"L(W.$CQm3/00HP#@)aOo^_0L,%YMC6CQ
+4EKX4_5)=3AC427EI?G)'1G;0a8RcCOHQZN8D0'>4BnueQ!JgrC9S`\35'r)>P,XTFL^K;]I?I
+0X$Be;M3.q84!!&0SH\MP&P!5$gKE)#Q!0U6C5(in:!!&0sOuS0s!0U6C5)'(<P%oDlOuS0s!0
+Ts$L&h=<5*@m[!<A9\P!4U$!0V)FH\MP$P!4;W<IL$1?$d]&A7Te#@VK_.P"C(b%[&V$ASu!FH
+\_]LBcqJ.B6/0'EcdI-H\_]LBcqJ.B4YskL^0*BP#-L]!0TTqP#Q:>B-;8,B6/0'EcdI;Lg-$Z
+H\_Zb5^eepD0'>4F(K!*FCB33L]NY>P"UT[P&5Q%!0TTqP#Q:>B-;8,B6/0'Ecd*=Oo^_=Ld$u
+=H\_Zb5^eepD0'>4F(K!*FCB33L]`e@P"UTPP&5Q%!0TTqP#Q:>B-;8,B6/0'Ecd*?Oo^_=OuS
+7OP%Kk@LcLVpP&bo*!0TTqP#Q:>B-;8,B6/0'Ecd*@Oo^_=OuS7OP%Kk@LcLVpP&bo*!0TTqP#
+Q:>B-;8,B4YskL]N[<P"UT6P&5Q%!0TTqP#Q:>B-;8,B6/0'Ecd*?Oo^_=LbP!kL^K;]D0'>4F
+(K!*FCB33L]rqBP"UTbP,XTFOuSUaL]rrYP!5$gL^'#ZP!4[1P&6?bOp$,pF_tPsP!FGY<,H\h
++EM+,F*(i2FGL-a!Kp*3*Kk8dP')Q\P!FGY<,H\h+EM+,ASu%7!g9OG98FXPD0qFgL]ET'I?IQ
+m3/@a$4aW?7D(mi15^eepL^'#*HYkGpP!FGY<,F?FP!FGYK.gqVD.-q;5*@^9DJ`flL]ETTHS9
+5SA7ZlMOu$;b6?ZdRF!,17D.-q;93iZKA7Te#@s;uIBcq+4Bl7cr@j#VsA!1\UL^/?TL^&9j<K
+[BG1Qk"OP#Qjm<,!IrAS6(+@<-IQ4aV'7BkM.%F!,1[98EY48pabb6ZumSF!,(40p518+CSekF
+DkZ5F+'3ND0'>4Bp),$DD@;;DFA2OBlnD=BnueQ!Kp*3!g60="FDe9+DHW4Oo^_%I?IQXP#P@k
+G%GQ5AS#aYASrW)P"U.++@C<\Ci^_-Bl0#+D0'>4BnuhR!Kp*30TrDk$Bf4BF(ZV0L]`e@P"UT
+bP,XTFD0'>4BnunT!Kp*30TrDk$Bf4BF(ZV0L]rqBP"UTbP,XTFD0'>4BnutV!Kp*30TrDk$Bf
+4BF(ZV0L^0(DP"UTbP,XTF>p*QdA9;a"GB5EO+DHW=Oo^_%P!FGY<((/:F_sJgBp),9D0'>4Bp
+),P3+d%_P!+slOuR&k16Oe`5%\[gP!+tKP&bnR+@C<\Ci^_9F(ZV0P"Us2>p*QdA9;a"GB4lq6
+V/D7P"U.++@SXh@:E^h>p*QdA9;a"GB5EO+DHW:Oo^_%P!FGY<,H\h+DI!3Ao9Df4`b1IF*(i2
+F<G:\D3>$K052PCL]NY>Ou"b*DJ`flL]ESo06:];F*(i2F<G:\1G<f\B4Ysk+DDruDKKT/7;cX
+7AS3-"P"Ur=Ou&7dI?IP_Bcq,G!KmJH1Qk"OP#PX.D0'>4Bp),F0TrDk$Bf4BF(ZV0L]NY>P"U
+TbP,XTF>p*QdA9;a"GB5EO+DHW5Oo^_%P!FGY<'k;:@<-W9Bp),9DFA2OBlnD=BnueQ!Kp*3!0
+U0*D0'>4Bp),D!2,KeHWqU[G%#3.+C]D#P"S)a@;L!-D0'>4Bp),D!.^63P"T('@:WnjDe"!4I
+=!)@+@C<\Ci^_.F(1;*6?ZdRF!,=@B-:oO983FsP,XU;>p*QdA9;a"GB81q<A/&/BnueQ!Ko7%
+5^eep>9H:V@;L!-@VK_C93iZKA7Te#@s;uID/Wrr+@8XpOu&7dI?IP_D'2,XART+8+DI!3Ou"b
+/+@0[P@:V\IBp),P1Mn7PP#-L0+@C<\Ci^_8@:><l>p*QdA9;a"GB5ESDe*E%6'=$e5^eepBcq
+J.B6/0'EcdI-HYmh:+DI!3OuS7(P!+slOuS7;P!+slOuS7<P!+slL`V^BP&c_+P&bnR+@C<\Ci
+^_8@:><l>p*QdA9;a"GB5ESDe*E%6'=$e5^eepI?IQIL]il;HWqU[G%#3.+DbIqP"T('@:WnjD
+e"!405YW<AKX=&1Qk"OP#PX.6ZumSF!+[0F(Sl(F(-mIF(-pJF(-sK>p+$@!KsFF99MqR+CSek
+FDkZ5F!,@I+BosTG%#3.+Dl14+DI!3P"T('@:WnjDe"!4052PCL]NY>Ou%NLK9AKJP(S1G%[&V
+$ASu!EH\_]L05_n3Ed:"pBp),P1N&!MP"L(=L]il;HWqUZG%#3.+DbIrP"T('@:WnjDe"!405Y
+W<AKX@'1Qk"OP#PX.6?ZdRF!+[0F(So)F(6sJF(7!KF(7$L>p+$@!KsFF99MqR+CSekFDkZ5F!
+,@I+Dl14+DI!3L]ETMHWqU[G%#3.+Dl14+DI!3P"T('@:WnjDe"!4052PCL]NY>Ou%N5>9Id(B
+-:oO98G9bWJCnECi+6++DHW4Oo^_=LbP!kOo\i2@:WnjDe"!4052PCL]W_?Ou%NL<IL$_P!FGY
+<((/:F_sGfBp),9D0'>4Bp),P3+d%_P!+slOuR&k16Oe`5%\[gP!+tKP&bnR+@:6[Ci^_9F(ZV
+0P"Us2>p*QdA9;a"GB4lq6V/D7P"U.++@SXh@:E^h>p*QdA9;a"GB5EO+DHW:Oo^_%P!FGY<,H
+\h+DI!3Ao9Df4_Z$[AS6(+@<-IQD3>$K052PCL]NY>Ou"b.De*E%6]s5YBl7cr@u(,J1G<f\B6
+/0'Ec`F<Ou"b4AS5RlA0>S/<GlnmCdi5P;e9SaBp),P!Ko7%5^eep052PCL]NY>Ou&7dI?IQHF
+(ZV0P"UT?P!*M%D0'?+AT!;)P,XUVOp$,KF(ZV0L]NY>P"UT<P!+.r+@:6[Ci^_/Ebpn3>p*Qd
+A9;a"GB5EO+DHW5Oo^_%P!FGY<.0p/>9H7U@;L!-D0'>4Bp),P93iZKA7Te#@s;uIBcq,G!KmJ
+H1Qk"OP#Ob^DIIR2+DI!3HUM:aF_sGfBnueQ!Kp*&D0'>4Bp),D!2,KeHWqUZG%#3.+C]D#P"S
+)a@;L!-D0'>4Bp),D!.^63P"T('@:WnjDe"!4I=!)@+@:6[Ci^_.F(1;*6?ZdRF!,=@B-:oO98
+3FsP,XU;>p*QdA9;a"GB81q<A/&/BnueQ!Ko7%5^eep>9H7U@;L!-@VK_C93iZKA7Te#@s;uID
+/Wrr+@8XpOu&7dI?IPqBOtU_5p0m)98EV34aUBU6?ZdRF!,O9@?O8LG%#3.+Dl14+DI!3P"T('
+@:WnjDe"!4052PCL]NY>Ou&7dI?IQ6+@:6[Ci^_8@:><l>p*QdA9;a"GB5ESDe*E%6'=$e5^ef
+JI?G)'1G<<W@mPHt!IHJ;+B3B,6Qg*+99M)KL]W`3HZ"WBP#-L0+@10ZCi^_8@:PHn>p*QdA9;
+a"GB5ESDe*E%6]s6g5^eep>9H4T@;L!->9J!!@j#i&1*CXJ1E^aK1a$'HDMS=VWKKo;93iZKA7
+Te#@s;u:DL3LCF(ZV0P"UT2P%K&F+@C<\Ci^_9F(ZV0P"Us2>p*QdA9;a"GB5EO+DHW4Oo^_%I
+=#0@D0'>4Bp),F0TrDk$Bf4BF(ZV0L]NY>P"UTbP,XTF>p*QdA9;a"GB5EO+DHW5Oo^_%I?ITY
+P(So_I?IPt@<?X/5p0m)97(MsB-:oO99M8HDD@;;P!5$gAo9Ae4d&!@DDRG=P&c_+HWqUYG%#3
+.+Dl14+DI!3P"T('@:WnjDe"!4+@SXh+DI!3HWqU]6V1]q@j#&"@:WnjDe"!4052PCL^0(DOu&
+7dI?IQHF(ZV0P"TD)1Qjn8+EM+,F*(i2FHUL("FDe9+DHW4Oo^_%05YW<AKX@'1G<H[D.-q1!0
+T,kF(K!*FCB33+DHup06:];ASu$$BcpDnFD5P[DIc[WB-:oO99K==1Qk"OP#O)K+DHW4Oo^_%P
+!FGY<*LJ2G%#3.+Dl14+DI!3P"T('@:WnjDe"!4052PCL]NY>Ou&7dI?IPrBl7@"Gp$ga97''8
+FEMFd+DHW4Oo^_=HYmh:+DI!3L&dm0Ap[`)6$?[QF!+q5@?O8LG%#3.+Dl14+DI!3L&caeWKKn
+[+CSekFDkZ5F+&BX>9H4T@;L!-@WQ"A91!f1Ci^_9F(ZV0P"UN0J<Hmp93iZKA7Te#@s<!BP#X
+/L+DHW4Oo^_%P!FGY<*LJ2G%#3.+C]&&P"T('@:WnjDe"!405YW<AKX<2:6IDr5^eep05_muBO
+tU_66L!*99M)KL^'#=HWqUYG%#3.+DbIqP"T('@:WnjDe"!405YW<AKX=&1Qk"OP#PX.6$?[QF
+!+[0F(Sl(F(-mIF (-pJ F(-sK F(.!L F( .$M >p+$@ !KsFF9
+9MqR+CSekFDkZ5F !,@ I+Bos TG%#3 .+ Dl1 4+D I!3P
+"T('@:WnjDe"!40 52PCL ]N Y>Ou% NLK9 AK JP( S1G%[ &V$ ASu!E 8PXV
+g!IHJ;+B3B,6Qg* +99M) KL] W`3 HWqV )B l7? qBldiP 8P UC6+CS ekF
+DkZ5F!,@V#Eho1> 9H7(: 3L& ^F! , RAA !0J jOo [4QDe* E% 6]s6g5 ^ee
+p>9H7(:3L&^F!+[ 0F(6s JF( 7!K F( 7$ LF( 7'M F(7*N F( 7-O>p +$@
+!g9OG99MqR+CSek FDkZ 5F !, @I +Dl 14+ DI! 3L]E
+TMHWqU[G%#3.+Dl 14+D I !3 P" T(' @:W njDe "!405
+2PCL]NY>Ou%N5>9 Id(B-: oO9 8 G9b WJ CnEC i+6 ++DHW4Oo^_ =LbP!kOo\i2
+@:WnjDe"!4052PC L]W_?O u%N L <IL$ _P!F GY< (0/G+DI!36 >:=GEd8dAL^
+0(DP"Ur@HWqU]6V 1a$DBN 4-@ :Wnj De"! 405 2PCL^0(DOu $epD0'?+AT!
+YoHWqV)Bl7?qBld iP8PU C6+C SekF DkZ5 F+' 3NP!FGY<,H \h+DI!3L]ET
+1HU;Fa@<-W9Bp)+ UBl7@ "Gp$g W!KmJ H99 O<^Bl7@"Gp $gW!g3SI99O
+<^Bl7@"Gp$gW"-N \J99O<a 6V/D7L ]NY>P "S, UDIIR2+DHW ;Oo^_=Op$qg
+HWqV0F(ZV0P"T4oA9;a!Bl5&!+CSekFDkZ5F"_5MBnueQ!Ko6Q+Dl14Ch7LI4aUBUAnc-kCh[s
+ %6:jop>p*QdA9;a"GB81q<0BLpP#Qjm<*LJWBl7?qBldiP8PUC6+CSekFDkZ5F!,0>D0'?+AT
+!;)P,XU]HYmh:+DI!3Ao9Df4_Z$[AS6(+@<-IQD3>$K>9H7(:3L&^F!,RAF-91%+CSekFDkZ5F
+"_5MBnueQ!Ko5lD/Wrr+@D;J055<@@:P)nOu"b4AS6(+@<-H4Bp(8*F(JuqDIal(+B<<$Bl$4U
+A5d&P+DI!3Oo^_%P!FGY<'b2/@:VYHBp)+TBOtU_66L!*99N+u>9H7(:3L&^F!,RA@?O8h+CSe
+kFDkZ5F"_BKA7ZlLOu%N5>9H7(:3L&^F!,RA@ZjAi+CSekFDkZ5F"_BKA7ZlMOu%NL<K]UqP#R
+T0I?K52Oq*X204T3I+Dl14Ch7L?!g7AU!KmJH$'I(tD/Wrr+@D;J04K*5CibC9OpR:-04Jm=F,
+0gZ1G<H[D.-q1!0T,kF(K!*FCB33L]ESo06:];ASu$$<GlnmCdi5P;e9Tt!0U!<1G<Hu!0T,kC
+5;kQ1OEgYD0'?+AT!Z'H]gXBP#Q.5D.-q1!0V2GBl7cr@j#VsA!1\C+EM+,ASu%7!g9OG4d#qp
+052PCL]W_?Ou$epD0'?+AT!Z'H]gXBP#Qjm<,$5e@:LEs@:PH`BcqJ.B4YskL]N[<P!+s2HS9(
+UBnueQ!Ko6Q+Dl14Ch7LI8pc^dI?IQXP#Qjm<*M"eDIYscASu!E04f$26SE"g@mWa^+C-+,De*
+FB99NhK5CJ]+04T3I+CfV:L]D1Q9Th1bDIal"GB8pVOu"b.Bl7@"ARQ^!A;C>N!H)G(!g6HE!J
+h&FCkr.U!Jgf?Cm$Sp@<?4%M#WWTHS9&FF<GF7DIIQs@3BT!FD5ZV2KNkYFHSF5GA1S1D/!lrE
+b/Z%Eaa'(Dj"pXEH6/a1G<DaBP2FM/<VeBG9D*DA<JL,1M@nTOo^@?P%odRP!+/*+ErubD/!lr
+Eb/[BApZ1E+D?Q3Oo^_%06\O_L]NY>Ou%NL<.0+,B658?P&,>VA0>QKCm&CW06\O_L]NY>Ou$b
+oGEQcZBl7@"ARUa6HS9RcGDH9_WKK%jBHUuE!KmJH1M@nTP&+uLDIIQs@?P5L06\O_L]W_?Ou%
+NL<.0p/I=!V\+D?Q3Oo^_%BHVM^Ci*m(@<,pfP%K%oBHUuE!KsFF1G<qpGDH9_!Ko6P+ErubD/
+!lrEb/[BApZ1E+D?Q4Oo^_%I?IQXP#Qjm<IL$1061uTF!,.Z1G<6VCisT4F!,[i1OXU[DesQ5D
+KCX6P!+.F@rH1+D/OD;D/!lrEb/Z%Ec6/COo^@>P,WJ?GB8pFOuRK#GB8oJL]W`SL]ET$H\_]c
+!I^,1Ou%NL<,uo$F,9jZ4aSi&Dg-7FD/!lrEb/Z%@rH1+D/OEX!Jgc>WFKj_F_u#;P#@H&@rH1
++D/OEX!Jgf?C5;kQ4aVtcOo]uo<0B%cP#Qjm<A/6#Dfg%CEc6/C+Cf>+F_u#;P&,pUP#@H!HZ!
+AM!KmJH3/@X!;MYF<!KmJ>$'K+\!g3S%A8cR2P#-Lg5^eep05b;CDIeP(Oo^_%I?J.pDIXf,A;
+C;M;MYF<!Ko5lDKd4@A0>c"Oo^_%061W@@VKq*+Dt_.FE8RBGDHQgCkr.U!KsFF1N$_G@s<!W@
+ZjQ704T3I+BosuGB8oKP'(V[A7ZlM8PYF3H\cNeH\cEbP#ZC1+CfV:P%'TRL]N[<H\cEbP(R&'
+1OYEc04f$2F!+\I#r++g0JP790JSRo0JP790JP790ocPo0eb=90ek@:NX7Bo0JP:90eb>B#r"(
+g0JP790JSRo0eb=90eb=:0THGo0JP790eb=9NX7Eo0ek@:0JP8A#r+.g0eb=90eeUo0JP790JP
+::0THGn0eb=:0JP:9NX7Bo0JP::0JP8A#r"(g0JP790eeUo0JP:90ek@:0THGn0ekC:0eb=9NX
+7Eo0JP790JP;B#r++f0eb=:0JSRo0eb:90eb=90ocPp0JP780eb=:NX7Eo0eb:90eb>B#r++g0
+JP780en[p0eb=90ek@90ocPp0JP:90JP79NX7Eo0ek@:0JG5A#r+.g0JP790JSRo0ek@:0JG48
+0ocPp0eb=90eb:9NX7Bn0eb=90ekDC#r"%f0JP:90en[p0JG480ekC:0ocPo0JP:90eb=:NX7B
+n0ek@:0eb>B#r"%f0ek@:0JSRo0JP780eb=:0ocPo0eb:90eb=:NX7Bo0JG490eb>B#r"(f0eb
+:90en[p0JP790eb:90ocPo0eb=:0eb:9NX7Bo0eb:90JP;B#r"(g0JG490JSRo0JP:90eb:90o
+cPo0ek@:0eb:9NX7Bo0ek@90eb>B#r"(g0eb=90JSRo0eb:90JP::0THGo0JG490JP:9NX7Eo0
+JP::0JP8A#r++g0JG490eeUo0eb=90ekC:0THGo0JP:90JP:9NX7Eo0ek@:0eb;A#r++g0ek@9
+0eeUo0eb=:0eb=90THGo0eb:90JP:9NX7Ep0JG490JP8A#r+.g0eb:90eeUo0ek@:0JP:90THG
+o0eb=:0JG48NX7Ep0JP:90eb;A#r+.h0JG480eeUo0ekC:0eb:90THGo0ek@:0JP78NX7Bn0eb
+=:0ekAB#r"%f0eb=:0eeUo0JG490eb=:0THGn0JP::0eb=9NX7Bo0JG490ekAB#r"(f0ekC;0J
+JLn0JP:90JP::0THGn0ek@:0ek@9NX7Bo0ek@90ekAB#r"(g0eb=:0JJLn0JP::0eb:90THGn0
+ekC;0JP78NX7Eo0JG480ekDC#r++f0JP:90en[p0eb:80ekC:0ocPp0JG480JP::NX7Eo0JP:9
+0JP;B#r++f0ekC:0JSRo0eb=90JG490ocPp0JP:90JG49NX7Eo0ekC:0JG5A#r+.g0JG480en[
+p0ek@90JP:90ocPp0eb:90JG49NX7Ep0JG490JG5A#r+.g0eb:80en[p0ek@:0eb:80ocPp0ek
+@90JP79NX7Ep0eb:90JG5A#r+.h0JP780JSRo0JG180JP::0ocPo0JG490JP::NX7Bn0JP::0J
+P;B#r"%e0ekC;0JSRo0JG480JP::0ocPo0JP:90JP::NX7Bn0ekC:0JP;B#r"%f0ekC:0JSRo0
+JP780JP::0ocPo0ek@90JP::NX7Bo0ek@90JP;B#r"(g0ek@90JSRo0eb:80ekC;0THGo0JG49
+0ek@9NX7Eo0ekC;0JG2@#r+.g0JG490eeUo0ek@90ekC:0THGo0eb=:0eb:8NX7Ep0eb:80ekA
+B#r+.h0JG490JHdq1NIDXF,0m\C5;kQ4aSi'Bm=3"B4Z-,>9I,m@rH1+D/OEN!KsF&Dg-8Y!g9
+Ng+BsX%Ec6/CL]Wa=>p*>o@rH1+D/OEN!g9O'Dg-8Y!KsEf+BsX&Ec6/CL]N[<>p*>o@rH1+D/
+OEN!KsF<!*p^OL]E52>p*F91OXU'F(ol1A7oIp+Bosm+Cf>+F_u#;L]Wa=L]C^'>9IEoCisT4F
+,0m\WH)p$F,0j[WEgWN+Cf>+F_u#;L]N[<L]Ld(>9IEoCisT4F,0j[WH)p$F,0m\WEgWNL]E52
+>p*@-!-3"%F,0j[WEgWPOu%NL<A.m"G'b?ADesQ5DKCtWOo]uo%[&V$Dfp/<Bl7K)Ec6/C+Cf>
++F_u#;P&-9fOu%moL]MO7GB8Q@P,Wd]H'1@S1Pc$e!Fp%aF_u#;L]N[<HS9W,5*@^?F`_G6DIj
+r8+F,)?D0@%H+F0+NL]W`SL]N[<P'DD<8:?XlF(ol1A7oIpHQ[6LFDPZ/AWf6?!g7\:D0C^9P'
+DD<8M=RiARTUhDesbRG`k7R1N[Y[AKZ5R!KmSA!ci4'F,0j[WI&lQ5%JMR+EMgFP!5%%L]NZ%H
+]iM`@;L!rP!FGY<.0p#I?G)'1G<6SARTV"Dg-O]H'1@S1N[Y[AKZ8S!KmSA!b6.bF_u#;L]N[<
+H[-`ED0@%CH#8^.P"UT3P!+/TF_5&uF(LM"I?IQXP":"a%[&V$AThKuF*VV3DesbRF*VVc5*@]
+TGAhMCFG'X]Q@G&R>9I-'G_c?*+BpLDL]Ld(>;(8X!*p^O06r?S>p*F"Oogeh04o$`5*@]TA8-
+(I5*@]TF*2>U!0T,kAnc:,FGTs[1G<QQF**6<Ou%moL]M%#E\D[#4aU[WCisT4F+&BXEc6/CI?
+ITd!KsF/A8-(I5*@^CH#4[7Bl]AIA8-';G`k4:Ec6/CI=!)HDesQ5DKC5h<JU[=WFft0Ch.7#0
+6r^DH]gR@P#Pt/G*5LS!KoTmAnc:,FGTs[4aShoBl\9:+Co2,P%9_3I?IP_CghC,+Co2,P%9_3
+06;8Q+EM[BL]NY>Ou%NL<.0p#F*2=BCghC,Oo]0/EcZ>cWFT^`06iXCHZF%KF+&BX@rH1+D/OE
+CP#[Z]OuRZ(EcZ>cApZ1TDfTo@P!5$bI=%-"I?ITYP"@<GAT!;(Ou%,sGB8QAP%odRP!*i(GB8
+QKP$sMoHS9G_D281T1G<^'!0T-o!JgbdDesQ5DKCU8P,We<Ch7$q@rH1106;8Q+EM[BL]NY>Ou
+"b1+EM[BL]NZ%HZF%KF+&BXE$01>GB8p`I?ITn1OXU'F*2>U!0T,kE+No0E+No0E0:6b1G<^'!
+0T-dP#Zpn82"pnDBNn0DBNn]!Ko6eP#QI?GB8QAP%odQP!*;nCisT4F,16f@?PYX06;8QL]ESo
+05u^IOu%mpL]MO7GB8QAP,We<Ch7$qEc6/K06;8Q+EM[BL]NY>Ou"b1+EM[BL]NZ%HXgu1F_u#
+;I=!)U+Cf>+F_u#;P&,Q0<K].dHS9G_D281T1G<]YDBNn0DBNn]!Ko5lE/4LW1OYEdI?I,SE+N
+o0E+No0E0:6b1OYEc06;DUE$/@-@rH1+D/OEN"HieA!g7AHL]DjdK89M;DesQ5DK?qAH#8^RL]
+N[<H\_Zb5)93%5')!dP!3AoCisT4F-94[!g7\^!/LW'P"9)$CisT4F,0s^!Jgf?CjUs<I?K4gO
+u"b$DesQ5DK?q1DesQ5DKCU:Oo^_%061uTF!,LAGB8QCOo^_%06;8QL]ESoL]WA5Ec6/CL]`g>
+HS9Z-5*@^IL]NYAL]W_?L]V()CisT4F,0p]WI$:CP!5$bL]MjDH#7LCG_cB`WHj:#P,Vu/G*5L
+S!KoTmP!FGY<-*>%E$0C]!KmJ/L]N[<A8QLQ98EV34aW>WI?IQNH#7LCG_cB`WHj:#Oo]*1G*5
+LS!KoTmP!FGY<-*>%E$0C]!KmJ/L]NY>A8QLQ98EV34aW>WI?IQNH#7LCGT_8SA8QLQ98ES24a
+Si'F_r7BF_up8Oo^_%P!FGY<-*>%E$0C]!g9O.+Co>4P"UT3P!+/T5^eepF*VVA+F##SL]Wa=A
+8QLQ98EV34aW>WI?IQNH#7LCG_cEa!I5euD0D(8L]NZ%H]gXBP#QLJD/^VB+F/bEOo]*1G*5LS
+!KoTmP!FGY<%i<8D'3nBD284U!Ko6eP(S1G8:?Xl04Sp:F_u#;+Cf>+F_u#;L]im?Ou"b3Dg-7
+FEc6/CL]im?Ou%<#EcZ>Y!0TKlK`D$s@=<KHDfTo@+EM[B+EM[BP&-;\E+NpMWI9q0I?G)'1G<
+ci@;Kjp+BsX&Li@^(3/@["Cl!(oC427t?'6usF*(u4+DuCZE0=+T!KmJH1G<ZYAohO*HQ[BOAT
+3fKF*(i2FHQZQOq*X204JL6FE:r1Eb0q#$6K;31G<TRF),h>D..L$M#WWTHWqV0@<63,?%%&BA
+mob&HQZOK",I#7!Jg_]I=!)@L]E53L]WA7?%%l9I?ITn1G<QYFDYH-CNG:7OpR:-D..L$F*fQW
+@<64I5*@]TEcY`7F!+[0D..L$+BsX%L]`G<L_3o8D..L$P"UT2@s<!@L]NZ@Oo^AYP%p.DL]W`
+AOo^_0L]`G6P)"IK8Wn4ZF`(]9L]DjdK3aWrL]E53F*(u4L]N[<HS9G^@<-IQ5*@]T:.-4BA;C
+8L!HW?kEcdJDF*(u4Oo^@>P,WMEAT3f1Ou"ad=!2C)L]NY>F*(i2FHWVEFCfES!Jgc>WH3/mE0
+=+^1G;Kj+APu\:.18EOu"b$De3NmF!+\C!DZ"/L]DjdK3aWrL]N;4:.'@]Bp(ZC1JU;ns+g]&0
+5?Y6Ou$TdAS,Oq+DN$/De3NmF!,4\98ISN!HN6iCi<r/Bp),!De3NmF!,4R!KsFF99O+IEKY("
+WJGPWC6EgiP":"a8;I8%!DZ%=!KsF/06E@@EcY`7F-8_*AnH*qFHT:;F(9E8+AP<IDe<U&ATX)
+.Oo^AYP%p.9L]E53:.'g=P,Wd]C6CcD1NIPHGB4m%6m-6-!H2R^F(KG9EcY`7F!+4G+DR&?L]N
+Y>De<U&ATX).LiJRYF<G(3AS,Oq+DQ]5Oo^_=P&,qoP%p/ZLiJSmP'DD<89/c]GB4m%6m,5lOo
+^@>P,WA3AohO*LiIMZ@rGpjAof(i6]t**Cl!(oC6GQPEKY("G^Y`G:.0m=:035PP,Wek3-'(MG
+B8p2De<U&ATW`JEcY`7F,1!Us,r.UAnH*qFHT:[WJGPWC6EgiP":"a82"FdFE8RBA8cR2P,4<t
+@VKq*L]CY>!\c<g!\c?h!\lBh!\lE8+DkP.CQ_>RH&)KW!H*+.056S5Ou$Q]FE8R=L]N[<L^B5
+\L]W_?ASu"!+EDO5GB4m@P"Us2P'MJ=89/9Y@VKq*L]ET7HX^]2F!,@EL^B5\L]W_?NY+!#0ek
+C;0ekC;0ekC;0ekD=!-2Xf@VKq*P"_$aI?IP_E+sQ<+E)CECh[cuOuSV6OpR9hOu"b1Df^/Z!0
+T,kE,TfC+EDCEF,0m\C5;kQ4aVtbI=$!QGB8Q@P,Wkm<K].IBlnEP!+KYaF-:!g#*PsK9RD,*B
+m=\AE,TfB+E27?Gp$X7G*5LSs,oNlP!FGY<,uo$F,0m\C5;kQ4aSi$Df^1HE,TfCL]NY>Ou%&q
+F*SmKDg-8c4aSi$Df^2[!0T,kE,TfB+E27?G_cB`!Ko6eP#QjV05tiNGT^sDF*NKAOo^_%E,Tf
+B+Cf>+F_u#;P!+.FE,TfBL]ESo05tiNGp%'EF*WQBP,XU#I?IQXP#ZpnAT2@.F!,F?F*JgHDf^
+1HA8QLG",Qu?LPRXIWKMLSP"CH0L]N;8HS9)r5*@^@Bm=\AF(ol1A7oIp+DI!3OogehA8QK4@V
+Kq*+C]&,F-:!g#*Ps"Oo^_=LbP!kP'DD<82#$oDfTD3E+sQ<+D#_)Cial=@W-(G1NR&EEb-A&A
+TMs7@rHC!P#-KY@V'V&F*VUFE+sQ<Ou"b#ATMs7@rHC!+EM%2Eb1CiAmob&+C\o'FE:r1Eb-A6
+Dg-7F@rH1+D/OEXCkr.U;Nak>"FH:sI?IQXP#O)NBln3#F))n;Bm=]^30Ia6$'H0h1Pc$e!Jgo
++056S5Ou$ogFDYH-CER\4G\(DuATJu.P"Ur>P'(;PG)-0^G^Y`GCh\!.@<64*+DkP.CERG-FDY
+H-CQ`pS@<6O;06:WAEb-A0Bln3#F))n0G%#3.H#7#/Cm$Sq@rHC!+C\o'FE:r1Eb1D1HS8i>F*
+)JKD'3Y/FDYH-CQ^J,@V'V&F(9-/AKZ&(DfTEP1Lap:FE:r1Eb-A6Dg-7F@rH1+D/OEXCkr.U;
+Nak'P!FGY<.0p/I?IQXP"@<GBm=\A@V'V&F*VVc1M1':FHUTPATMs7@rHC!+EDCEF!+t2CisT4
+F-:?q!g6HE@?Lb?04JL6FE:r1Eb0q#$6K;31MpQACNFhFCh\!.@<64*P!5%%05P?ED..L$P!5$
+b06:WAEb-A0Bln3#F))n0G%#3.H#7#/Cm$Sq@rHC!+C\o'FE:r1Eb1D1HS8i>F*)JKD'3Y/FDY
+H-CQ^J,@V'V&F(9-/AKZ&(DfTEP1OYEcI?I/TE+sQ<+C\o'FE;_EOu%NL<'38rEb0,A061WAD.
+.O,Bm;:ADfg)H+EVXHAM8":G]P!HBm=\PE+sQA+Cf>+F_u#;05tWMGp%-GGB5ENASGdjF<GUBG
+B8QAP&,qFOu=t;Bk2=!+Cf>+F_u#;L]W`ULe*[e05kfO+E)4@Bl@m1+?ht3A8c@-A9)+&P&N'-
+Eb0-*@<?O(G`l$h3IP*b@UX:eDe*E%?$h`SOu%NL8WjRH1G<9WFCT6"AWf$9A1r(@/n8fPFCfK
+5H"(o:FDl%L@WuO*E$/\&Anc-oEb0<1F`Lu'P')pJ06:]HE+*6lBl7RH\pKT_F(KH4@:O(eDJ+
+B\;u~>
+% uk.co.terryburton.bwipp/dotcode 0.0 2020122800
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp gs1dotcode 0.0 2020122800 74554 81331
+%%BeginData: 34 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT _@s)g 4ASuU /@ :O( eDJ() 6Eckq9
+F(KH4@:O(eDJ+B\ </: R<23K pPEa` [' AS# n&D fV"#
+06M%_@rEuAATDg: @Wc^5 Df .1:GA 2#8P 1l (DO uP+6@ <-F #Bl7m 4FHS
+U:F_`U>D_?-CEcQ G7F`M SBD D#C BBlJ $S g6- ]D3%no c0 l1QAFH SU:
+F_`U>D_?-CEcQG7 F`MSB DD# CBB l J$S g6- ]D3 %o;`DJ `g (EbTc] 3%o
+Di/n8fPFCfK5H"( o:FDl %L@ WuO *E 0A q<G `k$ >A8cR "D e*FB3 %oD
+i/n8fPFCfK5H"(o :FDl %L @W uO *E0 Aq< G`i LhB6
+,e<DffK-A7^+D'T t>:% 5 2X =F D5Z 2F- 8_M1 G<3GE
+as#uAWf6?1G<9WD KKE0@< Wi+ @ ;L! rO u"b1 @<- F#+D,%uF(L Lj04]!=FDPZ
+/F<G1(Cia0N1N.5 SBl@m1 P-6 N [FE2 )5B6 8E< AWf3'L]NYr Opu>KFD5Z2F
+*j(NAmoLsAWf3'P !FGY<0 B5( @ZmR N0oc 8tP )XR(F_-_!H ]ftD5*C&O5*
+@^MH]ft&EckrV1O YEdI? J0)* g/N: DfBf 4Df 0WZ5*@^MP# Q@=FD5Z2F*j
+'+I?I/TAU&0&DIe )IAo; +%@;L !-4?P 99@ <-F#+E1b0F (I"D@<-F#Df
+0B:+EVXHAM8"2Ec Yf(DIXf $@;L!r +?huP 1M1 N7G%#3.0/% 9QEcYf+DK'`
+?P!=AX%[&V$@;0d*>9I471G<o[Ci^_'+C1-d@UX:eDe*FB30Ia,!KsF<!KoX09RDp^NW>5*H]g
+XBP#RGB.?][RFcnqOFcnqK!@X+jH]gRUFcnqE",Hu@LOFN0!/L`5!Kr4dP#Y^/@;0eG!g7\h)i
++QY!KpPj04AR9P!5$b>9J)tCiba@P')p,L]NY>P#u:?E+*Wp+C-XD@;L"J5*@^bFcplqP%Bf!A
+8c@-Ch[d/P&PbVBlbD?@;L!<05#>\Ch[d/P!>+PI?IP_@;0=fG\(EA(QpY=1L#Y8L]N;7H[V&J
+?$hS50JJ:aP,4<ZOuSUaL]N;8M#WWnLbOtmP'CDLAncL$A;C>D!Kr5$G^Y`H>DNZC!JhG:I?I-
+W(Pj/h!Ji"JI?I-W.:%:V$A\bHV33Nq3+6N5Bm=3"L]`G6P)#3FI?I/TAo;*5M#WVo04\pAGT^
+35Ao;*5+C1-dL]E53@;0eG@Yb&JWI$:4P!5$b04AQ;@;0d*Bp),P1G<o[C`mn0Ci^_5P"UroA8
+QF5P%%j6P%'RTG%#3M@ZgbT$'I9(!+]qgG`m?83+QlJG`lNEBcpWC5'q^@8R7L)OuQuhFEisX@
+;1m6Oo]`7C`lrF5'q^@8R7L)04\pAG`k7R1MIt?BlfGHL]N[<P&4WAAncL$A0>;pL]E54P"_$H
+P&QQeHXpu8G`lNl!KmJH$'I9(!+]qgG`m?83+QlJG`lNJDIYDaGV<TEFEis4Ou%NL<.0p#04J@
+1@rGmh+Co>2G`lNl!KmJ>"d3\bV33VfBnubP1G<L!!0T-bBcpr'FEisXP!+/T5^eepA8QF5+DI
+!3OuR&k@kj-0H]iM\@<,jrA7ZluNWi`Y:.$b!GqWnTC5<"U!Ko6eHX^E(@rGmhP!3WD5*C/=P#
+X/L+DHW4Oo^_%05;VEL]NY>Ou%NLAM7M$Eas#uAKYGjEas#uAV^>$P"_#pDfBf4Df0WV"`RmjF
+(LNADfBf4Df0WV#\7jkFC]E#GB@kJAWh:VE-,f4DKCgDE+*d.AS,giFE2M8P'AWgEbBG9@UX:e
+De*E%DfBf4Df0VL04]!C@rGmhP!>*c@<-"%NWX3=FDl,?Bl@m1P'CDUB6,2+Df0Z-Eaa0TE%`k
+bASu?nFE2)?P#RT)I9S@6@<,jrA7ZlhH]iB31OYEXOq*X205#>\A8cR"De*FB30If*F_`U>D_?
+-CEcQG7F`MSBDD#CBBlJ#6A7]@eDImj"F)Q2A@qCgGOuY1:ATVm"@r#drB9KiQP'(hWFDtYuCM
+@[!I?IP~>
+% uk.co.terryburton.bwipp/gs1dotcode 0.0 2020122800
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+1 1 translate
+0 0 moveto
+<28323335293576425a494625213c423b3f6f612528303129303132333435363738393031
+ 32382838303038293139303532303031>
+<726f77733d3136>
+/gs1dotcode /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/gs1northamericancoupon-1.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/gs1northamericancoupon-1.eps
new file mode 100644
index 0000000000..389abfb342
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/gs1northamericancoupon-1.eps
@@ -0,0 +1,494 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 201 82
+%%Creator: Online Barcode Generator 2018-02-04. https://the-burtons.xyz/barcode-generator/
+%%CreationDate: 2018-04-16 22:56:38
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2018020400 30005 33214
+%%BeginData: 7 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+P1OerF_-`n01TSk ATDKp 010/i AS5q% H' 6mE 30Ia, !KmJH2
+3Ji?3%mj@F*(i.@ qAV bE+L\ DATVm "@ r#d rB9 KiQP
+'&Es@:O(aA79M!@ <ls?E +O HE04A mA@< ls ?E+ OH\<K _S[ F_`U> D_?-
+CEcQG7F`MSBDD#C BBlJ$ S4t f93 FCf* 'E d8d <AS,Xo AT D@'Dfp )1A
+Wh2!hZ~>
+% Category/uk.co.terryburton.bwipp 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2018020400 153684 40223
+%%BeginData: 9 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23JD %Ea`[ 'A S#n &Df U1I,
+\;":DfV")04f0ED fTQ0A oE hrP'A 6`Ec Q) =P! 1O1Ec Q)= DIIBn P!5%
+R,\;":DfRL@Df'? "DIeo MP' A6` EcQ) =0 5b? FATDg0 EZ fIEF_- _\P
++mAf%[&V$Ea`['A S#n&D fV" #P% 6 4gC G'+ 8/p (ZFEd; ,: Ecc5;/ n0$
+=E,Zq1AS,XoATD@ 'Dfp) 1AW h2! 3A 5G bFD tYu CM@[!P .H "'F`V, 9E+
+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/raiseerror 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renlinear 0.0 2018020400 86063 81859
+%%BeginData: 72 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOp s'bAS u<u DIm6s H\`B
+!23JD%@<-"%P!5$ b06:T D+B oso Ou"b #B QG; #+C1-d 04 JC3+Bo soO
+u"b5G]Y'4+C1-d0 4J@1@ rH1 %Ef L <GD KBB 2Ou "b*DI[ L* A7]joG ]Y'
+?@;L!rOu"b5AU&< ,Des? 4NW jQC F( KH V1G <i] G]\1=C h[ O"NWjQ CF(
+KHV1G<i]G]\4>Ch [O"N WjQ CF (K HV1 G<i ]G] [P9D
+KLmD6Z7*fBk;=J1 G<i] G ]\ "@ H=_ m>O u"b5 AU&<A
+De<U&ATW_.Ou"b5 AU&<BD e<U & ATW _. Ou"b 5AU &<0@;p:D!0 T,k@;L%-AU&
+<W!0T,k@W-9tATD :!Ci=? S"a + ^(AT X(k0 4J@ "CM.[+F`(` "Des?4NWjQC
+F(KHV1G<H[CNFH8 ART,,4 rKc WOu" b8Bk 2=! L]ESo04J@1 Eaa'(DhnFW1
+G<fg@:Nkh@<?4%L ]NYp0 6:fF G@GK2 A7]d (Am oLsAWei&@W -9tATDTuAor
+h9Ou"b#DfTB"EcP l,BQT %;Ou" b#DfT B"E cc5=L]NYp0 4Jj?A7]djDf
+g)>D284U1G<3UEb &a%GA1T 0BSo"S !!&0< 05# E9Eb'B-Blm p-E+*6f+D,%
+uF(LLj05#E9Eb&utAor!1F,0gZ1G<B`@<,mpAS-%0E,TfR!0T,kB6@X'A9)BsBQS33F,0gZ1G<
+B`@<,n!BkM+$H#R\CL]ESo05#E9Eb'B.A9;L@#*LbqB6@X'A8#OgB4uCC#EglOEbBH?Ou%NL8T
+/QiH]g15P"@<9@<,jrCi=>:@UX:eDes?4OtDhQ06CcMFCT6*DfQtBAU&<,Des?4OtDhQ06CcMF
+Eh51BkM<+FCf]=G[YE&B5WkaOu"b5AU&<B@;KXjDBO%4G]\4>Ch[O"OtDhQ06CcMFCoH/F<G[:
+G][P9DKM$nOu"b5AU&<<BmO>5FCf]=F(or3OtVtS06CcMFEh_9AohO*+EV1>FEh_9AohO*OtVt
+S06CcMFEqe:AohO*+EV1>FEqe:AohO*OtVtS06CcMFD#$$F!,R9G][S,E-%0qOu"b"Cijc1G]Y
+':Cijc1G]]*#Ou"b#DfTB"Eas$(DfQt0DfTB"Eas$(DfV!mOu"b#@:O(cEc6)<A7KOoDfQt0@:
+O(cEc6)<A7KOoDfV!mOu"b*DJO<4Eb/Zi+DG_/F)Z/2@:YNSOu"b8Bk2=!+EqO1FD-gjOu"b#@
+<-BsFD5Y9@UX:t@<?4%OtVtS06;)@@qB[hFD5Y9F)YPtATD4$BlB.fOu"b#DfTB"Ebo<!F<G%2
+Eb&a%Ch74#OtVtS04Jj?A7]e%BkM+$+C]80A7]e%BkM+$OtVtS04Jj?A7]e'Df?h.DfTB"Ecc5
+=OtVtS04Jj?A7]djDfg)>D'3;+Eb&a%@W-@1Df(XjOu"b#DfTB"Ed)5.FD)e+DfTB"Ed)5.FD-
+gjOu"b(F^]<$Ch74#E,Te?B6@X'A8GghFDu/>OtVtS05#E9Eb&utAor<;Df[%6F^]<$Ch74#H#
+R\COtVtS05#E9Eb'3)B4uC+Df[%6F^]<$EbT0"FDu/>OtVtS05#E9Eb'3)B4uC4E,Te?B6@X'A
+9)BsBQSN=Df_'pOu"b(F^]<$GA1T0BHUr1@<,n&Bk2=!OtVtS05#E9Eb&ipBkM+$+D5h*Eb&ip
+BkM+$OtVtS04J@1F!,O5F-:!g!KmJ>!g6HE$'I(tG_uJ$!!&0<05Y-BBSZYO1Pc$e!HV^kP%'4
+JOo^@?P#@);P&,pUP,Wd]Bp(ZC1MMXHP%odQP!+.FA0>r&F!,1[94D=MEaa'(Dj"pG@<-BsFD5
+ZVWJCS<!Ko6[@WNZ+P"UT2P&5P!BHUbtF!,1Q!g6HE98H-%Cm$S-@j#<<!g5HdOo^_%06n[L@W
+NZ+L]W`;P"UU%P&-:;06\OL+DG_/F)Z/2@:YP#Ou$QUEcW@;L]W`;>9IT%@j$%>G9C1SG\A4FO
+o]E.G\E7:HS95EG\A45+F0+NOu%NL<.0+&@<-E3BnuhR;Mb@9G^Y`TI=!VX+EM"5+DI!3F)YPt
+ATD4$BlB/NF)YPtATD4$BlB06L]NY>Ou%NL<A/S>GT^O[!Ko6eP":a2OslKqGA1T0BSZYOD0pJ
+@A9;L@8<Re6OuA*sP)FaO<%i<(FCB'4@rH1%EdKHJDL#`1Ci=?W5*@^1DL#`1Ci=?W@Yb5O4aW
+1p4<Pah+<VdjL^90?Or9EBL]Lq%H"1c/DfV"dOtr1bH\MP#Ou@`O8WoWmP#Pk-H"1c/DfV"ML^
+9/,H]AFq+<VdL+<VdL5)9Q/V32^Z3/@TDDL#`1Ci=?WH'0qG5C8+bs,o9gP"Ch#I?IQXOq*X2P
+&FfJEb&a%Ch74#P&=`IEb&a%@W-@1Df(YTP&#:b@W-9tATDTuAos1:@W-9tATDg*B4uCM!Jg`=
+Kno_G@<cH.@W-9tATD6uFEDG<Oo]$1Eb&a%FDl,]!Kr.]+C]80A7]dtAS-%I!FftfA7]e%BkM+
+$Oo^_`L]ETlL]D:#G\A4/DfTB"Eais/FDl#Z!FftfA7]e'DfCj?P&?G:OqqM8@r#^tDfor.@rH
+1%EfL<GDKBB2P&5Q/:1@XACM.[+F`(`"Des?4+EM+9@;^@#Des?4P!Y=+I?IQNBQ&*(DfTB"Ed
+NsE@W-9tATD:!Ci=?S"a+^(ATX)PHX^o6A7]dkDes?4+EM+9@;^@#Des?4I?IQ=DfTB"Ed)5.F
+D-i,P,FI;I?IQm:5An5R:9TF@rH1%EfL<GDKBB2P&5PT@<,jrCi=>:F(KH%DL#`1Ci=?BP#Pn!
+EcZSj3/ITtD0qEIP')q+P+.VML]ET%P(f'sI=%-"I?ITYP"Cg2FCf]=@rH1%EfL<GDKBB2P&5P
+fAU&<,Des?4+EM+9@;^@#Des?4I?IQDDI[L*A7]joG]\9TFCf]=G[YE&B5W_5F`)83FHSe/AU&
+<B@;KXjDN4mCDKBB2P!+s2@;L%-AU&<W!0TL."FDeCL]ESo04o*^!0T-[G]\:ZI?I0X!g4FBP&
+6@GAo<cKP&bo*!g4ESF-8_M1G<?XP!5$bP)as;P')q1I?ITnCQb?=P"C(KFCf]=AoDR/+EV1>F
+E;/BAWi'^Cijc1G]\rGP!+.FFEhmM>9J$4FF/fDP"U.MP"C(b8R7K806D8WEZfIKFHU*rV33Wj
+!/LYtG]]*XL]N[<H]g@1G]]*4P"Tn<FE30>L]NZoP'DD<8:>h<FE;PE+CT).FCf]=Ou%NL<HN;
+(Efsmf!0TKlL]DjMP"q0YL]E52P&$'Y0P4a0F(LLHP&lE^L]NZoP')q1P')p^OruDS@;0V$<-`
+FoP$iX"+>6Q"Bl8#lH#R>X98EY44ahZh@;L!rI?ITn+>6Z8Ec5`)=(u2eBTcbd"FH:S02lt5De
+iocBk2=!P"UT4OuA*rP!5$O01KktFA61cEbTc]99M5s30J*@5*@mgCm"g?EH6/a!I^,1I?IS`F
+Cf]=@<5piDKM%*Ou"b5AU&<@Bk2=!+EV[HEg!;_F`_\HEfsmf!KsF(AU&<0@;p:NCm"g^1G<i]
+G]\1LDf[%CAU&<ADe<U&ATT&>+EV1>FE_G0FD-i:L]W_tOo^_%FCf]=G[YE&B5W_4Ch74#P!+.
+FFCf]=G]7SB+EV1>FEh_9AohO*Ou%NL<-2\rFEh51BkM=D"`e<iBQTD#HS9JPG]\1LDf[%G+EV
+1>FEh_9AohO*P,WP7G]\.DA9;LJWKK&cP#QO7G]\1=Ch[O"NX'K7Ao)$jFHSe606CcMFEhbCF!
+,R9G]\.DA9;K-FCf]=G].2+F(KHV!Kq>`1OYEcFCf]=G[YE&B5W_8De<U%BkM+$P!+.FFCf]=G
+]7SB+F##NAU&<ADe<U&ATX(9Ou%NL<-2\rFEh51BkM=D#ASC&FD5?4P!*nuG]\.DA9;K-G`l[%
+"FDeDAU&<AE,TfR!0T,kFCf]=B45b#+F##NAU&<@Bk2=!P,WPEFE3ORL]N[<OuAIZI?IP_FCf]
+=H#R\C+EV1>FEqe:AohO*+EV1>FCB6#ASuUQ!Jgc>!Kq>`1N[2QFEq;2BkM=D"^tkYG%Hh"HS9
+JPG]\4MDf[%CAU&<BDe<U&ATT&3@<cIK!Jgc>!Ko6eP#QO7G]\4>Ch[O"NWs!)DKKH1P!+.FFC
+f]=H#R\C+EV1>FEqe:AohO*+DkP3BHVD.G][A8@qBP"P,X6=OuAI(Ou%NL<-2\rFEhbCF!,R9G
+]\4MDf_(WFCf]=B45b#L]DO<FE3NOI?ITYP#Q(:@<,n&BPDR"F)YPtAUB;!5QCeIRqHkPEb&ut
+Aor!1F,0gZD0qFaB6@X'A8GghFDu/>P&=oT@<,n&Bk2=!Oo]3<@<,mpAS-%0E,Te?B6@X'A9V`
+uFD-I3OuAI(P&"]Q@<,n&Bk2=!P&=oT@<,mlASGdjFGTpZ2Nic,F^]<$GA1T0BHUr1@<,mlASG
+djFGTpZ2NicWVgX_-B6@X'A9)BsBQS33F,0gZD0qFaB6@X'A9)BsBQS33F!,^j!G?O`Eb'B.A9
+;LJWFp?^Eb'3)B4uC4E,Te?B6@X'A8#OgB4uCC!g5I)!Kq52F^]<$GA1T0BHUr1@<,mlASGdjF
+GTpZ2Nic,F^]<$GA1T0BTd7GF^]<$BOtmjBQT(0OuAJWP,E_k<.0p/P"h*"I?G)'1G<c[DJX$)
+ARTVB30If*F_`U>D_?-CEcQG7F`MSBDD#CBBlJ#6A7]@eDImj"F)Q2A@qCgGOuY1:ATVm"@r#d
+rB9KiQP'(hWFDtYuCM@[!I?IP~>
+% uk.co.terryburton.bwipp/renlinear 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2018020400 108721 104094
+%%BeginData: 87 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOp s'bAS u?n FE2)? H\`B
+!23JD%@<-"%P!5$ b06_, @FD -I2 Ou"b )A SGd jFGKs\ 1G <3GEas $(D
+fUjAF`)83FHSF5@ UWb^B 6%p 5DI d 6qC i=? S"a +^(ATX (k 04Sp:D fT]
+'E/k*EDKBB2Ou"b *DJO< 4Eb /Zi L] ES o05 5<> F)Z/2@ :X &-!0T, kBl
+7^-E,oMuA9Nb/Ou "b*D I[L *A 7] joG ]Y' ?@; L!rO
+u"b5G]Y'4+C1-d0 6CcM F CT 6* DfU jAF `)83 FHSF5
+FCf]=G[YE&B5W_5 F`)83F HSF 5 FCf ]= H!tN 'B5 W_5F`)83FH SF5FCf]=AoD
+R/NX%piF`M2-Efr 43FCf] =F( o r3L^ K;$0 6Cc MFEh_9AohO *L]ESo06CcM
+FEqe:AohO*L]ESo 06CcMF D#$ $F,0 gZ1G <0Q FED)=FH-?a 1LY<:F*j'+I
+?I0?E--Gi1OYEX0 6_,@F D)e@ Bk2=! OtVt S05 +p2B4uB0BO tmjBQTCjOu"
+b#@<,jrCi=>:@UX :eDes ?4OtD hQ04J @"C M.[+F`(`"D es?4+C\bhCM
+.[+F`(`"Des?4Ot DhQ055< >F)Z/2 @:UKp DJO <4Eb/ZiOtV tS055<>F)Z/
+2@:X$oBl7^-E,oMuA8%,ZOu"b*DJO<4Eb/ZiFs(L:CNFH8ART+mOtVtS06CcMFCT6*DfQtBAU&
+<,Des?4OtDhQ06CcMFEh51BkM<+FCf]=G[YE&B5WkaOu"b5AU&<B@;KXjDBO%4G]\4>Ch[O"Ot
+DhQ06CcMFCoH/F<G[:G][P9DKM$nOu"b5AU&<<BmO>5FCf]=F(or3OtVtS06CcMFEh_9AohO*+
+EV1>FEh_9AohO*OtVtS06CcMFEqe:AohO*+EV1>FEqe:AohO*OtVtS06CcMFD#$$F!,R9G][S,
+E-%0qOu"b"Cijc1G]Y':Cijc1G]]*#Ou$fiCNFH8ART,*!0V2G055<>F)Z/2@:X$oBl7^-E,oM
+uA<J`sP#Q.5CNFH8ART,*!0V2G055<>F)Z/2@:XO(Bl7^-E,oMuA<J`sP#O)ZH"U]1HQ[9AG^,
+BfOo]N9G]T$3P"U4d%[&V$G^4"@G%G]9HQ[9AG^,BfOo]N9G]T$3L]W_WP"UT3P/3<+I?G)'1G
+<TiH"U]1HQ[9AG^,BfOo]E_5*AQp!KmS6Oq*X205YrZF(KH?+E2%>G`lm+!H!u`L]`J5P)#3FI
+?G)'1G<TdATVC"Eb&a%HQ[9AG^,BfOo]E_5)99')3RXK!g7SeG^Y_bOu"b.@W-9tATD^$ApYY>
+Bm=lcCm"g9P!4['Or9EUL]il]P'DD<%[&V$D/"'#DfTB"EdJpJBm=lcCm"g9P!5%%L^'"FL]W`
+&I?G)'1G<TTCh7$qHQ[9AG^,BfOo]E_5)99')3RXK!KmSKG^Y_bOu"b.@r,^bE\r-!!g4F<@r,
+^bEejd[)2J<V!Gu=_ARTV8!g4Fa5)96&!KoW`@r,^bEejd[)3R1>!KmJH5&FeGARTV8!KmJH5)
+96&!KoW`@r,^bEda)\Ou"b5Ea`HhHS9Z-5*@]TG`k7R1G<9QEZfU_!KmJ/L]NY>D0U>=ATX(k0
+5,K@+Co2,Ou"b4GT_6o1G<fp+F0,+06:Z<EZen,Efr4q@<--+>9J/5Gp$C>+F&\COo]hNG_cB`
+!I9J%Oo]eMH&)Ka!I,`4L^7O*Eejd[Cm&\!LG)&@P!5$b01:&J5*@]T6m+mB+@LJtG^3q5FHSF
+56[=hYOu"aYG`k7R1G;*<6[0_@Gp%?WB4Z1J1G;(?P!5$b01'oH5*@]T66JU>+@:>rG^3q5FHS
+F56$\VWOu"aWG`k7R1G;$:6$OM<Gp%?WB4Z1J1I3-MP!+.X+@D;THS8'@HS89FP#ZpW5p/OX4[
+L8ZP!+s2HU3GfP!*K$B8?PN4d*X.02d4F01LAQ<IK3I7X^G"I?ITn3%maa4aW?7A8-(?!0TKl0
+6eUaL]NY>Ou%NL<+K]`L]NZ%HS9XeH&)Ka!Ko6eP#Pt+Eejd[4aSi,+F&\CP,XU#I?IQ?Bl]"3
+P!+.FGp%Bg!KsFF1OYEcBQ[sD!0TKl6$OM<Gp$sFATVC"Eb&a%I=!)'GT]=u+Dl12FCK0/A7]e
+0P#ZpW02.NlHS8oDEZen,Eejg\!JglAC6CAdF_?L2P!+.YGT]=u+Dl12FCK0/A7]d(7!KhBGp$
+s5DfTB"Ec5Q%I?IQXHS8oDEZen,EejaZ!JglAC6CAdF_?L1P!+.XGT]:t+Dl12FCK0/A7]d(6[
+0_@Gp$s5DfTB"Ec5Q%I?IQXP#Y^/GT_8S?%%l9GT_'PP!+(5F*Wp3Op#<0EZfF6Bl]A"Op$,p5
+^eepI?J0))j1Mj$^*]:FY@t^G_cB`!Ko5lGp%Bg!KmJH1G<hmGT_8SD0U>=ATW_/P/3;;D..I#
++F##SH]f>(!0TKlP!FGY<%iN[5*@]TG`k7R1O($f+Dl@KB4Z0-FHUKfL]D[U!KsF<s+gZ%OuR_
+0D/"'#DfTB"EdNs5P')pQI?IQmFa]EDE+sQAL]N[<G_cB`!JgbqBm=lY!KsF/OuR_0D/"'#DfT
+B"EdNs5P')pQI?IQmFa]EDL]NZ&HS9)r5*@^9+F,)HBlda%Eb&a%P&Pbi+DDsD+Dl@KF(KG9Bc
+q[DG^4"@G%G]9I?IQD+F/bDP,W;CH"U]1+EWc`Bcq\W!KsF!Blda%Eb&a%P&QQeHYFUJL]N[<I
+?IQD+F/bDOo]EEH"U]1+EWc`Bcq\W!KmJ#Blda%Eb&a%P&QQeHYFUJL]NY>I?IQXP":"a<.0p@
+P')pIL]ET2Oogeh06o:85*@]TGVP@FOu&7\OuSV6L]N[<L]NZ&P"^4c!g7[ZGqtOHOu"b916Oh
+a1O(YtGVP@XH[%9$!dHJV!KsF/GqgFY@r,^bE\r3-8:?Y#GqpLf0p5@[Gqk*VGqt0VP,WeQ0p4
+_;@r,^bE\r3-8:?Y#GVUCd0p6-qGVP$RGVY'UOo]oT0d(=CCh7$q1jtNXI?IQT1*CisP%K&d0o
+5gS15Gso!IK&GP!3_mCh7$q1jtNXI?IP_GVL=c16OFHGqgFe16OGAP"CfrP%'4JP,X6;P!5%&I
+?G)'1G<f\FCB'4@rH1%EdKHJDL#`1Ci=?W5*@^1DL#`1Ci=?W@Yb5O4aW1p4<Pah+<VdjL^90?
+Or9EBL]Lq%H"1c/DfV"dOtr1bH\MP#Ou@`O8WoWmP#Pk-H"1c/DfV"ML^9/,H]AFq+<VdL+<Vd
+L5)9Q/V32^Z3/@TDDL#`1Ci=?WH'0qG5C8+bs,o9gP"Ch#I?IQXOq*X204]*3GAL]5ATE,NE+s
+Q<DfTQ)+E2%>F-8=4E+sQ<P!5$b05tWMF!+[0E+sQAL]W_?H\_ZMP(SPjE+sQA+E2%>F-:!g!K
+sF/L]ET%E+sQ<P!3i!G^,BFOogehL]Djd88r9fG_cEa!IKV&I?K4gOu"b1Bm=kFE+sQAL]W_?O
+u"b1Bm=nGE+sQBL]W_?Ou"b.+Bot-Bm=]^@XEn2I?K4gOu"b1@<?1(+BsX%L]MI/G^5)GP,Wd]
+C6CcD1Pc$e!H;atG_cB`WI$:4P!5$bBcq.5G^3q5FGKs\4aUn!!KsEsL]N[<FE1f"AUT_@I?I-
+LP"8lA1G<]]G^(?MBm=lY!g9OG1G<]]G^1ENBm=oZ!g9OG1QlZq@<?1(HS9?$5*@]TCh7K,E0=
+[n1N4IQAT!;)P,XU;OogehE/4LW99K@>Fbg$R!Gl=bL]N[<HS9)r5*@^@+DHW4Oo]B1DN\at99
+K@>Fbg6XrfW%m"d2u%DJO<4Eb/ZiBSZeS=GR*9s,r/#Ap][AI=%-VI?ITd"Gd)ALPQ(r=D;YgF
+)Z/2@:XP;"HllC"Gm)@LQYJ\Oo]uXP,Wkm<JUd6s,r/#5&b4\H'1@SWG..gP!+/TCOLPm@ssM?
+I?I-a(6Wg'Fcpm1Fa]EEP!Ug@Bm=\AE+sQ<DfTQ)Ou%NL%[&W2:+p=!CNFH8ART+_+DG_/F)Z/
+2@:X&-!g5I)1G<H[CNFH8ART+m+DG_/F)Z/2@:XP;!g5I)1Qj/LX`nJiFD)e9Bm=lc2ManeChR
+BoB4uB0E+sQBOuA+eP&-;>L]E52P&##NG^,#EP%/HFG^(?MBm=od@u(,(Bm=odA!.U:@:O(cEc
+6)<A7KOoDfUjAF`)83FHUKfP"oIp@r#^tDfor.@rH1%EZfF7FCB'4@rH1%EfrbP9mr1(@rH1%E
+c#6(NWjQCF(KHV4aShlDes?4D..B+4?SE#@UX:eDes?4+?huP1OYEc@rH1%Ec#6(HQ[B@FCB'4
+@rH1%E\D3>H'1@S1Ktu@Bm=]G+DYP6P!+/J!I]<N!.C#1I?I0-+CoM$GAL]5ATE3^8T\NgFCT6
+*DfUjAF`)83FHUKfFCf]=@rH1%EZfF7FCB'4@rH1%Eda*MBl7EsF_#'*AU&<D+EV1>FEh51BkM
+=D"a+^(ATX(uFCf]=H!tN'B5W_5F`)83FHSeM"CZ+gFCf]=NW>5*Op$+bF,0gZ1G<?XNW>4uFE
+hnSH[V&KL]W_WF-:C'5%\\qD3ApdL]W_W06<:?Ou"b'DN[2H1QmcHH]iN7Fa]EQP&$5RI?I0MH
+ZWhDFCoH/F<G[:G]\"@H=`8"@;L%-AU&<W!0TKl06DG\+Bot1G]\:g!0U!%I?I0MP"ArB1G<ik
+FE/LGG]]*XP,4<tL]E53FEhnj@Yb&JWI'dfFEhnj5*AQ\F*)GY",Hu@LQZn1P":"J06D8WEZee
+,FED)=FHSG.P#ZUFFE3ORL]ET$H\_ZMH]h-eDhnCL!0V,X!AJ+oCia0N&X%3k"Gd)ALQZeCFcp
+m19p-VP:gn'UFB!O)AWgGJOruDS@;0V$<-`FoP"UT4P!+5?AmoLsAUT_AOruDVFE2;8AQNSVFD
+-hFOp$,p+>6Z8Ec5`)=(u2eBTc#E!g5Ht!0TO/+>63&DKJT]FE2)?P"UrsOuSV@P!5$gP&-9^F
+)c5BOo]uo<.0p006CcMFCB6#ASuUQ5*@]TFCf]=GA1T0BHVD<FE3PAP'(kfFE3ORL]N[<FCf]=
+B45b#P&-9^Ou"b5AU&<AE,Te?FCf]=G].2+F(KG9GT_*>G]\.DA9;LJWJCV=2Ne*(1N[2QFEh5
+1BkM=D"DhX]FHSe606CcMFEhbCF!,R9G]\1KAnH*qFHSG.P#QO7G]\1=Ch[O"NWjH;B4uCM4aS
+i(AU&<AE,Te?GT_*>G]\1KAnH*qFHWVFAU&<@Bk2=!P,XU#I?IQOAU&<A@;KXjDN4s?AnGjjAo
+s2!HS9JPG]\1LDf[%CAU&<@Bk2=!+EV1>FEh_9AohO*Oo^_`Ou%NL<-2\rFEh51BkM=D#]F<eE
+bT0"FHSe606CcMFEhbCF!,]MFCf]=G].2+F(KHV!Ko6eP#QO7G]\1=Ch[O"NX'<AF*),.H'1=4
+AU&<@Bk2=!+F'&]Op$+bFCf]=G]7SBL]ESo06CcMFD#$$F!,]MFCf]=GA1T0BTf?:F*)Gc@Yb&
+JWKK0&1OYEc06CcMFEqhDF!,R9G]\4LAnH*qF<G[:G][A8@qBP"Oo^@>Oo^_`Ou%2kG]\4>Ch[
+O"NWij#Dg#]T4aSi(AU&<BE,Te?FCf]=H#I;,F(KG9E+sQBOo^@>Oo^_%I?IQOAU&<B@;KXjDN
+4p2ASuU$EfrS406CcMFEqhDF!,R9G]\4LAnH*qF<GO:G^1ERAU&<*F(8d!FHWVZ!g5I)!Ko6eP
+#QO7G]\1LDf[%CAU&<BE,Tf\CNO-4FD#$$F,0g<F*)Gc$@S(;I?IQm9p.MbOq*X2061WAD..O,
+Bm>e#P%64gCG'+8/p(ZFEd;,:Ecc5;/n0$=E,Zq1AS,XoATD@'Dfp)1AWh2!3A5GbFDtYuCM@[
+!P.H"'F`V,9E+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/renmatrix 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp databarexpanded 0.0 2018020400 239004 247709
+%%BeginData: 205 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOu P+8AS u<u DIm6s OuP+
+;CG'+8/p(ZFEd;, :Ecc5 ;/n 0$= E,^u oP 'E- L061WA D. .O,Bm> e#0
+6M%_@rEuAATDg:@ Wc^5D f.1 :GA 2 #8P 1l( DOp s'T@<> pe @<,q(E +*W
+pARp.D'Tt>:%52X =FD5Z 2F- 8_M 1G <3 GEa s#u AWf6?1 G< 9WDKKE 0@<
+Wi+@;L!rOu"b)AS GdjF GM, s8 <P lo1 G<? YEc #6,N
+X03@E+*WpARpr[0 6:]; D .R U, F,9 jZ1 G<QY DJNZn
+AKYSnCia0N1G<3G Ed2GDC ikI W Ou% #q FD5Z 2F- <^[F*)G:DJ +':E+P1qH\_
+]c23JDeE-,f4DKC /fX(Gd VF( L LtH] gXBP #RT (P%'TNOths t4d(eHEckrV
+4aW>DP!5%OP!5$b I=%,/F E2M 8Ou% NL<I L$A OrfcH05kfO Bl@m1P!5$bI
+?IQJE-,f4DKC/f1 OYEX0 5+p2 B4uB0 BOtm jBQ TCjOu"b4AS 5jkDKKqBF(K
+!$ASuU2Ot;bP04J @1G\q S>F<G %$Ed2 GDC ikgkOu%/jB 5M3tFE<9<P!
++.FF(K!$ASuU2+D ,P4D..O H%qU!) @;]Ue A92 j$@r#XdP!+ /J"FYWQ(4D?
+GOu%NL<%hg-E+*WpHS9)NP!5$b05kuT+DG_V@ZmRN1G<L!!0T-PDL7BE?BU:pOuRB&FHSh&P!5
+ %SP%&0h!Jgc>!AA2N5*@^bFcn_?!/L`?9TgrFF``d1C5;nRWKKH.G`k%L@Yb,LWJCY>5*ATfH
+]g@,F``d1C6CcDH'2WOOo[4NP!5$bDfp/X!,@ZjP!FGY<IL$AI?G)'1G<0NF!+[0?'6usG%#3.
++BosoOu$QUEas#uAWf$9@Yb&JWJCS<5*ATdOuSI%P!+/T5^eepNWCSlNKSFI5*C&O5)oXlP)Xg
+O5*C&O5)9;s!Kr4dH]A)^",Hu@LOG=c>9I?gF-6TfFcm]"!g3SI=C!RgBlfG$Ou$;bG%#3.Oog
+ehOrK2XOo^_JAU&0&DIakq06Uc?F-8_M1QlmDFa]EaP')+[BlfGHL]W`&HXUW0L]ET2NWLmhP!
+*5fF,0j[99'-20ebDH4d#qpG%#3.L]ET2L]E53P"^l:3KcOK@;L"@!Kp*=/;AZSP$sLVH]A4_0
+eb:n@;L!rP!FGY<.0p/I?IQ<BlfGHL]W`&HXUW0L]ET2NWLmhP!*5fF,0j[99'-21,(JH4d#qp
+G%#3.L]ET2L]E53P"^l:3KcOK@;L"@!Kp*=/;>M_P$sLVH]A4_0eb=o@;L!rP!FGY<.0p/I?IQ
+<BlfGHL]W`&HXUW0L]ET2NWLmhP!*5fF,0j[99'-21,(MI4d#qpG%#3.L]ET2L]E53P"^l:3Kc
+OK@;L"@!Kp*=/;@9qP$sLVH]A4_0eb=o@;L!rP!FGY<.0p/I?IQ<BlfGHOuS7!P!+slL]`f'P&
+bn&@;.MP0R+^P@;L!rL(#&X!JV"/H\`#b"HoUE0O\[:L]NZ3P!+tKI?I-a1G<0N1GUY/+D,%uF
+(L(7J;=5\%#K=e$A\hJV33N@Blf(2P"Us$P&bu68<Pc;BlfGHL]`f'HS8fA@UWdiFE2M8+Bsj-
+0en[i0f+gk0f=sm0fNBb+CSu*L]W`4P&6?bI?I0b1OXU'@;01ZA0>JmCia0N1OYEd@;0e=!0U!
+8!\c?l4^i%\0edhp@;.MQ0R/b$Op#3-@UWf1E0:?N@;0eG@Yb,L4aV?\CibC4P"UT2L]NZ4NWD
+/'4a(7MF,0j[99LiZ!!.hHP$sLVG%#3.L]W_jKE)NL5E]H<"FFQk1GLS.+CSu*L]W`4NWLpiP!
++s2H]A=b0ekC:0JI*ICia0N5^eep@;.MQ0R+^KBlf(3P"Uf:0enhSOp$,l#;@ke0eb:9AmoLsA
+Wf<,P#Pk(1GLS.+CSu*L]W`4NWLpkP!+s2H]A=b0ekC:0ed3JCia0N5^eep@;.MQ0R+^KBlf(3
+P"Uf:0f+tUOp$,l#;@ke0eb=:AmoLsAWf<,P#Pk(1GLS.+CSu*L]W`4NWLpmP!+s2H]A=b0ekC
+;0JI*ICia0N5^eep@;.MQ0R+^KBlf(3P"Uf:0f>+WOp$,l#;@ke0ek@:AmoLsAWf<,P#Pk(1GL
+S.+CSu*L]W`4NWLpoP!+s2H]A=b0ekC;0ed3JCia0N5^eep@;.MQ0R+^KBlf(3P"Uf:0fP7YOp
+$,l#;@ke0ekC;AmoLsAWf<,P#Qjm<.0+:@;L"@!0U!2!/LZ=9TB-6P!*tsCibC5P"UrhKE)%-T
+9<WG"FFQk1GLS.H]A=b0ekC:0JI*ICia0N5^eep@;.MQ0R.r)#;@ke0eb:9AmoLsAWf<,P#Qjm
+<.0p0I?IQXP#Pk(F-:!g!g60&04AQN3APh%AmoLsAVL^lL]N5@;gX<-L]im;Ot^<YF,0j[99MH
+$Eda*AOu$N\F,0gZ99''-0p4\.Beqb)G`i2VG%#3.L]ET2L]E53P"^l:3KcOPNWh*k0eb;'Eck
+rV5^eepI?IQXP#Pk(F-:!g!g60&04AQN3AYn&AmoLsAVL_!L]N5@?$hA7L]im;Ot^<YF,0j[99
+MH$Eda*AOu$N\F,0gZ99''-0p4\.Beqb*G`i2VG%#3.L]ET2L]E53P"^l:3KcOPNWh*k0eb>(E
+ckrV5^eepI?IQXP#Pk(F,0gZ99''-0p4\HNWCkVEckrV5^eepNWLmgFE2M8P!FGYAM7\8AmoLl
+Dg.@.Ou"b.ATVU(A<K->1G<6VDK[`iFDiuiH]BL.0JG170JG170JG170JG170JG170JG170JG1
+70JG170JG170JG2:.$CEi)2J?W)2J9K$Be)G5)92p"-Q?@/;O@`$Bh6K0TnDY@YbAS5*Dn.5*C
+2I!g4FW$A]%P9ThSq",I&B9Tgr_!f.2HV33Nq30Ia,$BdT9WKKH.H&)Nb)2Ju_$Be)G5)9E!"-
+Q?@/;O@`$Bh6K0TnDY@YbAS5*Dn.5*C2I!g4FW*f(/d9ThSq$&A\H9Tgr_!f.2HV33Nq30Ia,$
+BdT9WKKH.H'1@SFa]D_Ou"b$Df0_Q1N[Ol1jb660JG170JG170JG170JG170JG170JG170JG17
+0JG170JG170JG170JG17Lb+^cOr9&WOr9&UL]il7P!4[%L]NZ4Ot;CjL]im;Ot`%YP%'4MP!5&
+.P!5%SOuS7"M#WWnL]N;?P"]A(DK[`iFDiuiL]il)P'MJ=%[&V$FDkW&DL7PCOuSV6L]N[<L]E
+T%L]NZ&H\_]c=HYk(0Tp[/P":`qL]`J5P)"hpL]W`AP%'TNOt`%YP%'4KP$!lVP!5&.P!5%SI?
+G)'1Mp]FBQ%FA!\c<k4aShlA7crg+C1-d05#69+BosoOu%NL<,H2gBQ%FA!ATa#HS8l>Afu8*C
+ibC4P"UT2L^fM@@rH7.0f*oi1c1@O04SO)+BosuA7g1E0TrD`P"ArB1G<B[Aft;#?'6us@;0d*
+@;0e=!F]\`P%'4JP,XU<Ou"b7@;L!-G%#3.L]M[-CibbKL]N[<P"_#pI?IQHATVU(A<$dH0eb;
+E4aShlA7gWVP,4<t@q92-!-VdeF,0gZ98EV)%$F:oDf0_Q13@Fk0Tp]kA7gWGG%#3.L]NZ3Ot;
+D"FDkW&DN]8u@q90o>9IEdAp]=fP,Wkm8R7K805#69+BosoOu"b"BlbD$+C1-d06Uc?F!+[0?'
+7!lP#Q:0FD,T'NW_$j0JS_RHS8l>Ar&C/V33WEA7gVtG%#3.L]ET2L]N;?P"]A(DK[`iFDiuiP
+'LJMF,0j[99'-21,(JH4aV?\CibC5P"UrhL_"TG@VK_.HQ[K?CibC5P"UrhL*mOq!Jh8.DdmEu
+I?IT?A7gugLa\EMP'J]jA7crg+CeqoH\aA=WI9q$?'6usB5hH*>9I471G<0NF!+[0?'6usG%#3
+.+BosoOu%NL<,H2gBQ%FE@Yb8P4aShlA7gWkP,4<t@q92-!-VdeF,0gZ98EV)%$F:oDf0_Q13@
+Fk0Tp^;#*PgG3/@QCBlf(2P"UT5L]NZ4P'N3MG%#3.L]NZ3L]N;8P"^Z4P!5%SOt;D'FDkW&DB
+NG"As,?6.$?cWH!tE.P%'4LP!+/8@;L"@!g63>3/@Qj!g66?/;=1UP&-:FOuS7!L]W`5Ot;CiP
+,X6[P&-:FL]iM8P"_#iOo^^HI=$VI!1!V5P#[;LFDkW&DBNG"As,?64H_mkGqWZ<Aft;#@q91u
+LbP!kI?I0-Ou"b(E+U4s+C1-d04AR9+BosoOu"b7@;L!->9I471OYEcD.Rg&De+k30JP:90TnS
+G04SO)LanRaOu$TYAr$G1@;L"@!0U!2!Jh/I9Oi!YFtkaoD_s/2H"1AsLaZ\GF,0j[98E\+!Kp
+->/;O@LDdmEuP'J]jA7crg+CeqoH\aA=WI9q$?'6usB5hH*>9J)tCibC5P"U.MP"ArB1G<0NF!
++n*F,0m+BlfGHL]Wa=P"_#p06Uc?F!,X7CibC6G%#3.P%'4KP,XU<Ou%NL<,H2gBQ%FA"Y_Yc0
+JS_RHS8l>Ar&:,V33WEA7gVtG%#3.L]ET2L]N;?P"]A(DK[`iFDiuiP'LPJAr%jDBlf(2P"UT5
+L]NZ4Ot;CjFDkW&DN]9TA7gWIG%#3.L]NZ3L]E55P"_#iL^J6B@VK_CGqWZ<Aft;#@q91uLbP!
+kI?I0-Ou"b(E+U4s+Eh10F,0j[99M8t@Yb,LWJCY>5*ATdI?I0-Ou"b"BlbD*Blf(3@;0eG@Yb
+)KWKKr<1G<o[Ci^_B@;L"@!d8!gF-:!g!g9OG9Th2[P#Q(5AmoLlDg-O]G&1cH!g3kQ1OXU'G&
+1b5>9I471OYEd04AR,Bm=3"L_l43Ou$<u!/LZ3"FGQ[86pS&!\c<a!g9CC)3QtB3/@Tk"c32AL
+PRXI!Kq\9BkD((ARpT!L]NZoP'DD<8R$uYL]N;GH[V&JL_kjhL]N;WH[V&JLacVVL^Jq>P,4<q
+OuQlaAncL$A;C>D!Kr5$G^Y`H04o*30o5jm1G<Q^F_t]1Bk)tuOu"b-@;Kmr@;^4)ATDKpM#EJ
+m05P?DD`0F1M#<Dl05boLATDKp+?VcB!/LZ3GC,K4NWLmgL]Wa9Or9EBL]`J5P)"i$L]Wa9Ot`
+ %YP%'4KP!5&.P!5%SOuS6tP"UTsP!+/T3/@Qj?BTP]P#RT(L]NZ3Ld@1eH]g@E!Jk'FG^Y`SP
+!4[-Oo^RJ0JG170JG2:#EkpH)3Qt8",Qu?LPQ"f#EkpH0TnDY@Yb8P5*Dn.5*C2>P"9CtCiF&r
+DKTf-EbT$D">DM`0Kq[`1G<0QE+iZtF_t]1Bk&8J4GY\I!Jia_OuS7JP,X6@FDkW&DLI[=Ao;*
+5NWh*k0ekD=6&5Pt>'lDlL`qq\L^%s>@VK_.P":BYNWq3m0eb=9Lb+>_LbF+<3/A*.!Jgr%Ddm
+EuI?I-;DKTf-EbT$D"#)D_Ch[s/2Dd=P"Y_Vb0JG[SOu"b*F)Nrn2BY+ELbOVcLcKgF3/B)JWJ
+C_"DdmEuI?I-5DIYD]"Y_Yc0enJML]N<8H]g@E!KsF<#BXlnBl8?^8;L]1!Jl&KOuS7&P,X6BF
+DkW&DLI[=L`qca0ekC:0eb:8La%ib0ekC:0eb:9La@iXLbF+<3/.FPOo^@EFDkW&DLI[=LcU=m
+Ld-6L3/.FFOo^@EFDkW&DLI[=LgQ/J0ekC;0eb=:L`h]`0ekC;0ek@9Ci4B4ATDKpNWUsh0Pk0
+6E+iZtF_t]1Bk*/,0JG480Kq[`1Pc$e!F]\`P%'4JP,Wd]Bp(ZC1G<0N+CSu*+DI!3Ou"b7@;I
+'0@;L!-Bp),P1M:Z=P%%j6P%'RTG%#3M@ZgbT$'I9(!,$7_P'N3MB5hIG@UWsn>EV0sI?I0-P'
+N3MB5hIG@UWu6@Zgb8@;I&jP!45@P"ArBGqWfLAs,?@1MIt?BlfGHL]N[<P&4WAAncL$A0>;pL
+]E54P"_$HP&QQeHY7;0P%'4JOo^^POuS6tB5hIGH'1."E+Y8BAo;*5P'AWmE+Y7sOu%NL<.0p#
+061W@@VKq*H]g@E%$EN3&<\T#%$GF_0Sfdn)3STYP!4;W<0DBe3/A!+;Na"\AS5jkDKKr_C5;n
+R4aVtcOo^@IP&-:FP')2"P')29<K]P/WI9p>Ou"b&DI[TqAUBS"061KFP&5Q/5*AQeH]iN"P#Y
+_L5'r)>P,Wkm8R7K=P%'S<B5hHoDI\hnC6CcDGqWoq5&-5]Ou%NL%[&V$DKTf-EbT$(F`)7C>9
+IQtAs-VML]DjdK89M`s':dD04A[9BOPe$D.Ra%@rc^0F!+[0B5hIG@XEn2I?K5=!*taD05b?GF
+D5f72Dd=1DJXS@>9IQtAs-VML]DjdK8(`a?'7!VE+Y8BL]N[<M#W82HS9)r5*@^7E+U5,P"Uf:
+0JJ:aP,4<ZOuS6tB5hH*Bp),P3+d&<0p4\HP')ReI?IQmG\J:5E+Y8BL]N[<P%K'(3/@TJE+U5
+,L]NY>P"UrtAo;*5P!+/TFbj@PP#RThI?IQIF_t]1Bk*;iP$iWSF_t]1Bk)1+DK?q7+Du==ATD
+KpEcl8@+DHW5Oo^_=L]W_?P'DD%DKTf-EbT$(F`)7CBnubPG^Y`TOuQldE+iZtF_t]1Bk*;iP$
+iWFCiF&rDKTf-EbT$(F`)7CBcpi#E+iZtF_t]1Bk)1+DK?q7L]NY>P"UT3Oo^_jI=#C=E+iZtF
+_t]1Bk)1+DK?q7L]ET_I?ITn3,*GP2Dd=T5*B<:5%/8HBOPe$D.Ra%A!0$=@$5Jl"FG#tG][Y@
+D`0F1Df0B:+DHW3P'DD%DIn'7Ble2N1cB8iCj@.;+Dtb8FD5f72Dd=1DJXS@BnueQ!Kp*3!KmJ
+HG^Y`TI?I,SB5hHoDI\D$r/qAL1G<Hu!0T,kC5;kQ1G<T`A7^c+DKTf-EbT$H1OEgYB5hIG@Zi
+m$P!FGY<-rJ#A7^c+DKTf-EbT$H4aUlcB5hIG@Yb)KWKL\:L]Wa9OuS6tB5hH*Bp),P3+d&<0p
+4\HP')ReI?IQmG`k%B!G?@`+DHW4Oo^_=OuR&k@kj-0H]iN-?@@u9P'E-LDKTf-EbT$H5*B<#D
+KTf-EbT#+ASu!rA7[E.+DHW5Oo^_%P!FGY<0DB?@;Kmr@;^4)ATDKp+Du==ATDKp+D#G#De*E4
+D/WrrNXT?4E+iZtF_t]1Bk*;^P!FGBB5hH*Bp),P3/B8OAs,?63Kd4%EdMV2CiF&rDKTf-EbT#
++DKTf-EbT#+ASu!rA7[E2De*F>$t3skBOPe$D.Ra%A!/X25^eep061W@L^](?Oo]E2FD,T'P%'
+RTG&1cR@Zgb%A7h!6Oo]<\!HMag@VKq*Ou%,iD28=X8oeK[L^'#NOp$,l"u%_b0JG2:#*PgG)2
+J95ASmT(OuR)nAftfN98G6aWJCV3"HoUE0TnDY@Yb/M5*Dn.5*C1EEaa/7ASu!rA7[E.+DHW4O
+o^_%P!FGBL]Wa9OuS6tB5hH*Bp),PG`k%B!Jk'FG]%Y@ATDKp+D#G#De*E4Bcq,G!KmJH1Qk"O
+P#Zpn<IL$0D/WrrNXT?4E+iZtF_t]1Bk*;hHY7;0+DI!3Ao;*5P!+/(DIYCD@;Kmr@;^4)ATDK
+p+D#G#De*E4D/WrrNX'HED.Ra%A!/W$Bcq,G!KmJH1Qk"OP#Q(5AftfN99M8KF)Nrn2Ng7e@$3
+]^CiF&rDKTf-EbT$H5*B<:E0:?NCh[s/2Dd<7@;Kmr@;^4)ATDKp+D#G#De*E4D/WrrNWs3=D`
+0F1Ou&7dI?IQIF_t]1Bk)1+DK?q7P"UT8P"L(;DKTf-EbT#+@;Kmr@;^4)ATDKp+D#G#De*E4D
+/WrrNX'HED.Ra%A!/X25^eepDKTf-EbT$(F`)7CBp),P3/@^#8s2APOo]37As-Vd4d#qpCi4B4
+ATDKp+CT)*BOPe$D.Ra%@j#?#@rGmh05YW<AW@"5F_t]1Bk*;^P!FGY<+g/^+DI!3@;Kmr@;^4
+)ATDKp+D#G#De*E4Bcq,G!KmJH1Qk"OP#Q::A7^c*Ble2N1cCL[HY7;0+DI!3Ao;*5P!+/(DIY
+CDBle2N1c?IfDI[TqAM7n=A7^c+DKTf-EbT$H1G<GbBnueQ!Ko7%5^eepDKTf-EbT$(F`)7CBp
+),F"HlApAU&<2F)Nrn2K*JLGp$ga98Eq<8s0=(Ci4B4ATDKp+DGn82Dd<7ASu!rA7[E2De*F>#
+B"[$ATDKpOu&7dI?IQ<CiF&rDKTf-EbT$(F`)7CBp),F"d2JqAU&<2F)Nrn2K*JLGp$ga98Eq<
+8s0=(Cgh.!BOPe$D.Ra%@j#K,D`0F1+D#G#De*E4D/WrrNXT?4E+iZtF_t]1Bk*;^P!FGY<+g/
+^+DI!3Ble2N1c?IfDI[TqAM7a?BnueQ!Ko7%5^eepI?J/iP%?:ZE+U5*E+W[!@u(,"P"_#pL]N
+;?Oo]E2FD,T'P%'RTG&1cR@Zgb%A7h!6Oo]37As-Vd!KoE_ASkmjFE<U)OpNd\@:YNbOu%8tAs
+-VZ!0V2GOo^@IP#@H&L]W`SG&1cR5)93%5*C/H%[(7IL]DjML]Mpe<H`1jP!4[&P!5%RI=%-"P
+')29<H)AWP%'4IP#-L]!/Let@:YO1L]N[<HS9)r5*@^@@:UKp+BsX%L]E53L]E52?&/K"@:YO1
+Bp,HO"c*5C)3RgCP!4;W<0DBe9Tj[LP"9G.A7^c+DKTf-EbT$H4aSi$@:UKbL]E52L]E52E+*:
+?!g7\3L]DC&A<LDb9Th2[P#Qjm<%h]pDK]H)+Bot)Bl7]pB4ZFG!I]<N!.C#1D.Rg&De+3N0Tr
+D`P"Bh5As*4YF^nroOogehB5hIG!g7\F@:YN&P'(&n1G<9IFCAusDBND&DK]H)P%'4UP#@H!05
+b9?H\_`d)3UtT!g4FaAp]\)I?IQc!Jgc4"c*8DLPPto!Jpc=5'rH/L]NZ@L]`fBP$r]n!KpQJ;
+Na5"!KmJH5(/SnI?I-JL]NZ@L]`fBP#-Lg5^eepL]NZ@P#@H,L]NY>P!4;WAWf6?FcnqOFa]D_
+Ou"b(ATUgK;g2qdFD,`B05kEb5*@]TASdMnOu"b.GEP.Q1G<W_P!5$b06Uc?P!5$b05kuT+D#A
+P$'I(tD..L$L]ESoL]E53ASd/(P,Wd]@UX;?5*@]TATrq2Ou"b.@<63,D..L$L]LsnEfprrEfr
+5*06;;FC`mV4+D#b[WJCS<WF]lg@UX;?WJCV=WGZ3dOu%#f+DkP.CPVtR4d#qcD'3D6P,W#/L]
+W`UP,Vo!Eejd[Cm"gTrfTm:"FDeCG%#20F*:u.+Du$=ATs<:ASdO/@UX;?!G-'i@UX;?WJCV=W
+GZ3dP,XU#I?IQ@C`m1qEg!DX!g6B,05Pf?Ckr(S1N%%PATs<:ASdO/@UX;?!Jgf?!JpbmGDH9_
+!IJ^$P!5&.ATs<:L]N[<AS`Ju@<.O1L]`g>DI[]?Cj'6'P!3]*@;M)-Ou%NL82#%-@;I'-G%#2
+0Cj'6'+D#@3@UX;?WJCS<WKM(\WKK&cHZ![CATs<:D0M.>HS9G`@;I'-G%#3C!KsFF1OYEcI?I
+S`G%#20G%#20F*:u.P,XU#G%#3C!0Ur@P!FGY<%hg,+D#bQ!KmJH1G<TRF))n8@<64?!FfJXOq
+3^pOp$q(I?J.pG%#20G%#20F*:u.Oo^_%05bVLDJ^M-GESqg1N.DX+C\c"+D#b[G^Y`GDfp.EA
+Sd/'P,W>9P'CnfFFB;^Ou"b5@:CrM1a$"W!F(?[L^](CL^/_;Lf]B8L';@I!F1EfL^/_>L]iMj
+L_PROK8'PGL^8eCL]iM;L`V@/L(BK&$\X<?L^T"@L^&YBLhMMS?\T)UL]iMCL]N;;L]N51b[$A
+f04]<O+Cno&@;KLmOpR:-L]E53A79RgCh7L?!KsF/06iXDOu"b%+C]&&G%#20G_cckCkrL_9Th
+1bA;C5A!/LZ3$[XOAP!5$bL]WA?C6GQ-G]8fsA0>WM99O+S!I^,%Ou"b+L]ESoHXn7@@:CrM1a
+$Or99N_1FCAW52`)XlL]NY>L^0):H[V&K04]09P!5$b04]0CP!5$b04\pDAWf6?1G<9UGAiX.O
+u"b%ASbq@5*@]TA7]RqP!5$b04\^:P!5$bP!FGY<%hu/C5<.Y!Ko6eP%?:WGAeU7+Co,+P,Vu6
+AWfr%ASc9-A8QO/L]hg?F_)\.ATUgK;g2qdFD,`Y1G<9_AKYM+A7otHWFU*^P%nN=Ch4`"D0KQ
+I"D2(YF(HJ,ATUgK;g2qdFD,`Y1G<9_L^9.MOu%?=!g7;S!0TKlL]E53L]_uWC6CcD1Lt]c#AT
+ %rP&-;\A9Vr7C6D5QG[u#S#&8qqP&-;\A9VT-C6D5QG^Y`GI=$bML]N;6HS9,s5*@^4G9CXV!
+g7A1GAeU=P"Us_A9T/2L]W`UL]NY>A9VT-C6D5QG^Y`GI?IT@G]t9T+Co\ZG^Y`G04np9A7]e*
+Bk2=!F!+\C!Jh#;"Gd)7!Jgc4!Jgl7#`&M;",I/;"Gd)7!Jgc4!Jgl7#)EA;",I)9#)E;9!Jgc
+4!Jgr9"Gd/9",I#7#`&M;!Jgc4!Jh#;!f-r7!f.&:"c*28!Jgc4!Jgo8#)E>:!f-o6$&AV<!Jg
+c4!Jh&<!f-n`Ou"b'Bl7HmEcYf3+BosmL]E53>p*@-!/L`5!aQpQL]E57L]WA;>p*@-!/Lr;!f
+.);"C3-SL]E5;L]WA;L^&YC>p*@-!/Lr;!f.);#`&kE$=+cYL]E53L]WA7L]iM;L^&Y?>p*@-!
+/LZ3!f-r7"Gd5;#)ESA#[JQWL]E53L]WA7L]iM;L^&YAL^JqG>p*@-!/LZ3!f-r7"Gd;=#)ESA
+#`&kE$=+c[Ou"b4 AT8i) Bl7Hm EcYf3 +C no& @;KLm L]Wa=L
+]W`;P"Uro04oHQ+ EM+ 6P%'R \Ou%m oL ]MR .EK Xde!
+KsF/06iXDOu$]pG 9D,QA nc -nATE !/A9 ;L ++E M+6+F '&B L]rrX L]rr
+8P'DD<82"IdARfM "ASGd jFE 8R/ M#W; 2M #W; 2M#W;2 M# W;2LeW \5L
+`hLNL`;-VL]`G6L _PY-L &eT :G( p !XL ^/_ NLd -Uoc%Z 5G L&d0gF bhE
+$%>FkFL&eoA!5XB iSVT" T!0 `3P Lc L1 iX, 'u7 !/-.ZL fK 00WJ1D lL&
+d$a!4mtML&ec=!/ 6.-] S6E HL ]i MBL a7d mLb acfL
+`M:JLgc#<XbHh+L iJ.L Q A? N: </; uZH \MNl Lbshd
+S;%$@L&f/H!7$<! MhV5DL &fD O !/c Rb LeNU :Lb jbcR></FDh r^o!1S]CP)+
+=<DMW(aC5)_mL&c d\.u4a m0S T RhL^ JqZL g#T rL&eK5!2PF !LiA(KZA&A#
+L&d'dFGOdi7YUok L&fST! 6U# r\:t !8L& eQ9 F+s\/L&fGR 7#5-)+,0c^L
+&euC!/?4.P_^*26 A>K[L &e<2 ?AM+- !f/7 Z!1 JWB^kb71!2 >9-L_>LJLj4
+XSQ&$<698F(6.Yr P.!2k POYD* %tL&f PU7 >Mb9:5BgE: P`Y>@Yds=-A
+Z\s!/$"+[YT<c!2 #')LffB 3Wec.Z !4RbI L&d p'2hh=/Le3 C.L_tq=L]rS
+FLfoOEL&eB43edX-L&f)F!/H@^?'6us@q]F`CNj?(B4uC.AT8hs+EM+6H\`5rCh%-i@r$:"BkM
++$F-8_C&<]_M!g7\SP"ArB30Ia,#a20C#a.B79Th1bGA1T0BQG;#+Co_@H[C1(8UZan?'6us@q
+]F`CNFW8L]ESoL]E53GA1T0BQK>GL]N[<HS9)r5*@]T@q]F`CNFW8+Cf(r@r$..D'4%:A9;L++
+DI!3@q]F`CNj?(B4uC.AT8i,P"UsSOo^_%I?I,S@q]F`CNFW8+Cf(r@r$..D2&&>P%nN9FCAus
+DMSCXWJ1E%P&-9^Ou"b*L]ESoHXg`#@r$..D'3q/@PKeu+DI!3P$r]Z@:CrM1a$Lg!KmJ>#Ehc
+-I?I/T@ru:F5*@]T@ruXP5*@]T@r6F$P!5$b04SjCDj!;I1G<6LCh8bnOu"b$ASc:J5*@]T@qT
+kG5*@^b5^eep052PCL^9.EOu%NLAM7P;D]iP'ARfLsF_r72B6068@ru:F;Ia9SD]iP,GAi9?FE
+2M8+D58-;H$M<Bk2=!F-8=4@s;K,@q]F`CNFW8+Cf&*P,Vr5AWge<ASbp#@r6F$L]h<uCia/1B
+4Z0_;c@mSA9;L+Ou"b$GDHNf$'I*#!/LZ3"+)\8P!5$b@s9&0L]W`U@s;i6Bp),PG[kq?BnuhR
+Ckr+T!Fp=b+DI!3P'DD<8;J%E$'I923/@QEGER3,!G$G!P'Mi`A79RgCh7L?!KmJH9J9q$GEP.
+Q1G<9IFCAusDBNJ7GEQEu1G<ceGB4m;@<>poASrW3AS5jkDKKr_2NeW7/<U=&1G<WgD/sQ=F!,
+LAGB8pVOu%moL]MC9D/sQ=F,0j[WI$:=P!5$bD..I#+EM+,D.RU,F,0s^C5;kQD/tF6P%odRP!
++s2H\_ZMP#R5<L]N;3L]MR.B5M3tFE<6=P,Wd]E,Tf\5&qceAS5jkDKKr_Cm"g^1N78R+Cno&@
+;KLmP%K&OG]t9LDf_(7H[V&KE,TfR!g7;S!0TKlApAMBE,TfR!g6HE97))M8UZb$I?IQXP":B0
+L]NYXOpR9ZEc6/CP!3oL5*C/RFa]EDAoD^,@<@M?AU&0&DId<hF*(i#CLq%>D0mpW@WNZ4Dg-8
+Y!0U!<30Ia,!KsF<!KoX09Th1bF(025>DN<9!/LYd@<>poAT!;)P,Wd]Bp(ZC1Lt`S+DI!3H[V
+&KBnuhRC5;kQ4aUdcG9CUU!g6HE97))M8UZb$I?I-W!Jgb^Ou#3_061WA0/%?WDJX$)ARTU4F(
+025F(02D@VBg*>9IurF-:!g!KmJ>!g6H.BOtmjBQSZcK3^->@WNYr+EM"5P%'4JOo^@?P#?X_!
+.C#_>q^,8F<GL@FD5Z2F!*Y1+CoD.FC]E#GEQnu061WACh[cu@<.N1I=!VgAT2]5DKTf:Dg-8c
+$'I*#!/LYnF_u/;GB8Q@P,Wd]EfrVL1G<ceG9CpEGB4mIP"UroD..I#L]E54Ec6/b@Yb&JWI$:
+4P!5$bEc6.EBp),9L]DjdK4uHKDg.@RL]N[<P%K&]Dg*=<L]NY>P"U.X!I^,`I?IQXP":`TOpR
+9Z061uTP!5$bP'&F!AT/br+EDCEH\_]c5*DmnP"ArB1NR,HL]CY8!/LW2!/LV\P'M+[E$01>GE
+QEk"Ho`gL]E52L]E52?'9IdAnc-nATDa.F!+\C'8U+<Dg.@RL^fNHH[V&JLd[&.Ec6/b@YbJVW
+I'&V86qB7Anc-nATDa.F*j'0L^oRKL]NZ&HS9)r5*@^BDg*=<P"UT2P!+/4Dg*=<L]N[<P"UT3
+P!+/J!I]<9AT/c+L]N[<P"UT2P!+/J!I]<N!.C#1I?ITYH\_ZMP#ZR7E0<D!P!5%RI?I-LP"B_
++B5M3tFE<6@P%odQP!*iA!g7;S!KoU/"FG0-GB4mIP"UsIEc6/CL]ET2P%'SkAnc-nATDa.F-:
+!g!g7;S!KoU/"FDeBDg*=.L]DI6GEN#jF^:.d06:]D+BsX%F(K<R!g7\3Ou%N5Ec6/b@Yb&JWJ
+LS1!./a)GEP.Q97;soEc6/b$^,XRAT3fAL]N[<M#W82HZNb;P!5%%I?I-BAT3e?P')29<IL$0E
+c6/C+EATFDg.@hF(K<3+EATGAT3fWI?I,SE+sQA+EDCEF,0gZ99NbI1Ktu@Bm=lLL]DjdK3aX"
+L]DI6GB4mEF_u/;GB8Q@P,XU;P'M(dGB8p2DKTf:Dg-8Y!KsFF5*C.p+E2%>G^G5HI?K4gOuS6
+tF(K<3+Du==Ec6/CL]N[<P"Us`F(K<3P!3c+D/sQ=F,0j[WKKH.GV=,LE$/@-E+sQAL]W`;L]N
+Y>H\_ZX!I^,`?&/K"Bm=lc9Th2QAT3G*>DN98!/LW2!*tb5F(K;5E+sQAL]im?>DN98!/LW2!*
+tb505tWMF!+\C!/LYnF_u/;GB8Q@P,Wd]EfrVL1NJ9OP&5PeAT2]5Efs(Y!g7\SP#Pn!Ed2GDC
+ik"HEc6/C+EEW<OogehI?K5'+Du==Ec6/CL]N[<P&5PeAT2]5Efs(Y!g7\IAT3e6P')29<.0p#
+?'7!+4>1_dDD*Y`ASu?nFE2)?05tWMF!,F9G]PNWBm=kFE+sQA05tWMGp%'?G]T$WE+sQAP#<r
+HASGdjF<GO:G]T$WE+sQAP#@*,Ou=t;Bk2=!+E2%>G_enR2D8ufF<GL@FD5Z2F!*Y1+CoD.FC]
+E#GEQnu061WAD..O,Bm>e?I?ITn3IR&#Ou"b%@<>pe@<,q(E+*WpARpr`P%64gCG'+8/p(ZFEd
+;,:Ecc5;/n0$=E,Zq1AS,XoATD@'Dfp)1AWh2!3A5GbFDtYuCM@[!P.H"'F`V,9E+*6lBl7R3P
+#M~>
+% uk.co.terryburton.bwipp/databarexpanded 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp databarexpandedstacked 0.0 2018020400 62622 66024
+%%BeginData: 18 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOu P+8AS u?n FE2)? OuP+
+;CG'+8/p(ZFEd;, :Ecc5 ;/n 0$= E,^u oP 'E- L04\L5 @: EYcAU& 0&D
+Id<hOuP+;CG'+8/ p(ZFE d;, :Ec c 5;/ n0$ =E, ^uoP'E -! 04\L5@ :EY
+cAU&0&DId<hF*(i #CLq% 'L_ Q"0 Op s' _E- ,f4 DKCt)O u" b#@<,j rA7
+^ofOu"b%Df0Z-Ea a/7A moL sA We ifE -,f 4DK CuE0
+6;5UBl7R*H#R>X4 aVtc O u8 C3 DfB f4D f0WC P,i2'
+Cia0N4aW>WI?IQm 30Ia6V 33Q n !Bl U* FE2M 8P! +/T/Wr;\Fc nqO1OXV5/Tc
+#UAWeitP#ZpnAWe *t3A5; iFD 5 Z2F- 8_M1 OYE cDfBf4Df0W COu%NL8T/Qi
+Bl@m1NX006DKKE0 @<Zg6F _-_ \DfB f4Df 0WV #%hdoD..OH %qU!)@;]UeA
+92j$@r#XdP'AWgE bBG9@ UX:e De*E% DfBf 4Df 0VL04\L5@: EYcAU&0&DId
+<hP!>*c@<-"%NWX 3=FDl ,?Bl@ m1P'C DUB 6,2+Df0Z-E aa0TE%`kbAS
+u?nFE2)?P#RT)I? G)'1G<9 IFCAWe Eb0K7 @;] UeA92j$@r# XdOuSV806M%
+_@rEuAATDg:@Wc^5Df.1:GA2#8+Co%qBl7L&ATMd4Ear[DFcna<F(KH4@:O(eDJ,-DH]iMmATV
+m"@r#drB75qB~>
+% uk.co.terryburton.bwipp/databarexpandedstacked 0.0 2018020400
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp gs1northamericancoupon 0.0 2018020400 88443 84730
+%%BeginData: 46 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOu P+8AS u?n FE2)? OuP+
+;CG'+8/p(ZFEd;, :Ecc5 ;/n 0$= E,^u oP 'E- L04\L5 @: EYcAU& 0&D
+Id<hF*(i#CLq%>3 %oDi/ n8f PFC f K5H "(o :FD l%L@Wu O* E0Aq<G `iL
+hB6,eFDfTr5@;TR rBk(R h@r HL/ Df 0o X'T t>: %52X=F D5 Z2F-8_ M1G
+<3GEas#uAWf6?1G <9WD KKE 0@ <W i+@ ;L! rOu "b*D
+I[L*A7]joG]Y'?@ ;L!r O u" b$ Dfp #;D KKH7 FCoH/
+FHOb01G<6VF`;8: FCf]=F (or 3 L^B 5# 04Sp CE, TW9AU&<ADe <U&ATWq9F`)
+83FHSF5@rHL/Df0 Z.G]\4 LAn H *qFH -NID KBB 2Ou%#qFD5Z 2F-<^[F*)G:
+DJ+':E+P1qH\_]c 23JDeE -,f 4DKC /fX( GdV F(LLtH]gXB P#RT(P%'TNO
+thst4d(eHEckrV4 aW>DP !5%O P!5$b I=%, /FE 2M8Ou%NL<I L$AOrfcH05k
+fOBl@m1P!5$bI?I QJE-, f4DKC /f1OY EX0 4SpCE,TW9A U&</Df0Y>@r
+HL/Df0Z.G][P9DK M$nOu"b $Dfp#; DKKH7 FE; /BAKYK$F`; 8:FCf]=F(or
+3OtVtS@rHL/Df0Z.G]\1KAnH*qFH-NIDKBB2P&5P!@rHL/Df0Z.G]\1KAnH*qF<G(3F`;8:FCf
+]=G].2+F(KHV09S,>P#Pq0F`;8:FCf]=H#I;,F(KHR"a+^(ATX)PHS8lIF`;8:FCf]=H#I;,F(
+KG9@rHL/Df0Z.G]\4LAnH*qFHS;?1OYEc04fBI@;]V&055<e5*@]TDfp.EBl9)CP,4<t05?:CO
+u$fiH]A,5P)XgO3,`q]P!3WD5*C2S@VV&,L]NY>05?Y6Ou&8DOuS6tL]`f6Ot:NoFHSh&L]N[<
+P!5%ROuSV6L]`g>L]`f(P"^:NOuRB&FHSh&P!5%SP%&0h!AA2N5*@^?F``E>C6D8R5^eeqI?J/
+iOq*X204AR9+BosoOu"b7@;L!->9I471Lad5@rGmhOuSV6L]N[<L]NZ&P"^4c30"!%4aW>WI?I
+Qi!@a1kP')pOP')pONWCPkNI-gPP')pOL]`G6P)"I4NW=k;L]NZoI?IT7+CSu*OogehOrK2YOo
+^_J>q]W#F-8_M1KtuF@;L"J!g7\h)i+NX!KpPrG]7)/A0>/2G%#3.P!5$bP')q1I?J0)F^]!*P
+ %'4JP&5P!@WuO*E%YdE0lCoMFD,*"ATDKp@;]RnF`;8:6=FCj8Q0_OF^oN9Eb17r5p/Zr0d'5
+0Ecbt;6#C1RBk(Rh+@C'iE,TV:F(fK7Ch+YuDf0W1F*&OCAftM)F(oN)Ch4_T8K]E@0ek@20/%
+?SBldisEcQ)=P!=AX<+0K^L]ET2NW_<r0eec-HS8iPBlJ#DB6,eFDfTr5@;TRrBk(Rh@rHL/Df
+.mMA3idcFE2M6FEMV8N^,lQ7oM,b:2b/pBHTTXATDKp@;[2TDfp#;DBO"6Dfol,+Cf>-F(o];+
+E(j7@3BW*DJ*cs+@/RA-o`q90I\Y.Ea`['AS#n&DfV"*I?IP_G%#20G%#3.L]ET2Ou"b7ChY#8
+@;L`"P"UTbP,XU#G&1lK!0Ur;Ch\\0P#.<^HS8iPBlJ#DB6,eFDfTr5@;TRrBk(Rh@rHL/Df.m
+MA6)AqN`oCqAKX91+=K3(0eb%!A79Rg+EM47F_kS2F*(i2F<GdAFD)e*+@C'aE+*X0+Ad)iAnc
+K4Ch7KsFD)e2DIdHk@<?F.+DG^9FD,5.Ea`iuAKWZLFDi9[0/%?SBldisEcQ)=P!=AX<%hloE$
+0=4Ckr+8Ch\\0Oo^_>Ou"b$De'u6@;I'0Ch\\1Oo^@CP"_#p04SpCE,TW9AU&;>B4GnD@Yb8P!
+Ks:B1Lk?GE,TW9AU&<Q!,#e\P'LPUF`;8:FCf]=+D52'P%'FP/WtBhDfp#;DKKH7F<G4+E0=[d
+!KmInDe,#VDfBf4Df0WV#\7jkFC]E#GB@kJAWh9k@<-"%+C\c"@rGmh+E)4@Bl@m10/$jEFCAW
+eEb0K7@;]UeA92j$@r#XdP!>*cBl7EsF_#'*AU&<D+Cf>4E,TW9AU&<ADe<U&ATWq9F`)83FHS
+e604SpCE,TW9AU&<ADe<U&ATW_.Ou%NL<+BihE,TW9AU&<BDe<U&ATWq9F`)83FHSe604SpCE,
+TW9AU&<BDe<U&ATT&'EbBHR#&%R^B4uCM98H-%Ckr1V!Ko6eP#Pk1B60(8FEhnj@!aPKG]Y':E
+bBHR"*Ad0P"Uro05b?FFEhmMFEhnj@Yb&J!KmbP1N$cJFEhn`!-EI-P'LqVGBA(O+Dtb7FEhnj
+@Yb&JWEUKTDfp#;DKKH7F<G(3F`;8:FCf]=G].2+F(KG9@rHL/Df0Z.G]\4LAnH*qF<G(3F`;8
+:FCf]=AoDR/+Cf>4E,TW9AU&<<BmO>5?'9G@EbBHR"*Ad0DIn$6G]]*nI=#CCB60(8FEhn3+Bo
+suDfp#;DKKH7F<G(3F`;8:FCf]=G].2+F(KG9@rHL/Df0Z.G]\4LAnH*qF<G(3F`;8:FCf]=Ao
+DR/+Cf>4E,TW9AU&<<BmO>5>p*F9G^Y`TI?IQ<EbBHR")i.#DfBf4Df0WZG[YW*F!,"3DKKE0@
+<[lR0/%?WDJ`g(EbTc]<0B7iOq*X205#>\DJsQ;BOPahEbT#lDI[U-E,TWW30If*F_`U>D_?-C
+EcQG7F`MSBDD#CBBlJ#6A7]@eDImj"F)Q2A@qCgGOuY1:ATVm"@r#drB9KiQP'(hWFDtYuCM@[
+!I?IP~>
+% uk.co.terryburton.bwipp/gs1northamericancoupon 0.0 2018020400
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+0 1 translate
+0 0 moveto
+<283831313029313036313431343136353433323133353030313230303030333130313233
+ 313936303030>
+<696e636c75646574657874207365676d656e74733d38206565>
+/gs1northamericancoupon /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/swissqrcode-1.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/swissqrcode-1.eps
new file mode 100644
index 0000000000..c5055dac79
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/swissqrcode-1.eps
@@ -0,0 +1,1834 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 262 262
+%%Creator: https://www.terryburton.co.uk/barcodewriter/generator/
+%%Copyright: Barcode Writer in Pure PostScript
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2020040100 29629 32838
+%%BeginData: 6 ASCII Lines
+currentglobal
+true setglobal
+/Generic /Category findresource dup length 1 add dict copy dup
+/InstanceType /setpacking where {pop /packedarraytype} {/arraytype} ifelse put
+/uk.co.terryburton.bwipp exch /Category defineresource pop
+setglobal
+%%EndData
+%%EndResource
+
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2020040100 39041 38872
+%%BeginData: 15 ASCII Lines
+/setpacking where {pop currentpacking true setpacking} if
+1 dict
+begin
+/raiseerror {
+ $error exch /errorinfo exch put
+ $error exch /errorname exch put
+ $error /command null put
+ $error /newerror true put
+ stop
+}
+[/barcode] {null def} forall
+bind def
+/raiseerror dup load /uk.co.terryburton.bwipp defineresource pop
+end
+/setpacking where {pop setpacking} if
+%%EndData
+%%EndResource
+
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2020040100 90671 89701
+%%BeginData: 306 ASCII Lines
+/setpacking where {pop currentpacking true setpacking} if
+1 dict
+dup /raiseerror dup /uk.co.terryburton.bwipp findresource put
+begin
+/renmatrix {
+
+ 20 dict begin
+
+ /args exch def
+
+ % Default options
+ /width 1 def
+ /height 1 def
+ /barcolor (unset) def
+ /backgroundcolor (unset) def
+ /colormap (unset) def
+ /dotty false def
+ /inkspread 0 def
+ /inkspreadh 0 def
+ /inkspreadv 0 def
+ /includetext false def
+ /txt [] def
+ /textcolor (unset) def
+ /textxalign (unset) def
+ /textyalign (unset) def
+ /textfont (Courier) def
+ /textsize 10 def
+ /textxoffset 0 def
+ /textyoffset 0 def
+ /textgaps 0 def
+ /alttext () def
+
+ % Apply the renderer options and the user options
+ args {def} forall
+ opt {def} forall
+
+ /width width cvr def
+ /height height cvr def
+ /barcolor barcolor cvlit def
+ /backgroundcolor backgroundcolor cvlit def
+ /inkspread inkspread cvr def
+ /inkspreadh inkspreadh cvr def
+ /inkspreadv inkspreadv cvr def
+ /textcolor textcolor cvlit def
+ /textxalign textxalign cvlit def
+ /textyalign textyalign cvlit def
+ /textfont textfont cvlit def
+ /textsize textsize cvr def
+ /textxoffset textxoffset cvr def
+ /textyoffset textyoffset cvr def
+ /textgaps textgaps cvr def
+ /alttext alttext cvlit def
+
+ inkspread 0 ne {/inkspreadh inkspread def} if
+ inkspread 0 ne {/inkspreadv inkspread def} if
+
+ /xyget { pixx mul add pixs exch get} bind def
+ /cget { pixx mul add cache exch get and} bind def
+ /cput { % Optimise by only storing "stem" corners
+ dup 4 mod 0 eq { % dir is up or left
+ 3 1 roll pixx mul add cache exch 2 copy get 4 -1 roll or put
+ } {
+ pop pop pop
+ } ifelse
+ } bind def
+
+ /abcd {
+ 4 string 0 [
+ 5 -2 roll
+ pixx mul add dup
+ pixs exch 2 getinterval aload pop 3 -1 roll % A B
+ pixs exch pixx add 2 getinterval aload pop % C D
+ ] {3 copy 48 add put pop 1 add} forall pop
+ } bind def
+
+ /right {dir 1 ne {x y dir cput [x y]} if /x x 1 add def /dir 1 def} bind def
+ /down {dir 2 ne {x y dir cput [x y]} if /y y 1 add def /dir 2 def} bind def
+ /left {dir 4 ne {x y dir cput [x y]} if /x x 1 sub def /dir 4 def} bind def
+ /up {dir 8 ne {x y dir cput [x y]} if /y y 1 sub def /dir 8 def} bind def
+
+ /trace {
+ % Walk the outline of a region emitting edge coordinates of the path
+ /y exch def /x exch def
+ % dir 1:right 2:down 4:left 8:up
+ /dir x 1 add y 1 add xyget 1 eq {8} {4} ifelse def
+ /sx x def /sy y def /sdir dir def
+
+ % A B
+ % C D
+ mark {
+ x y abcd
+ 1 { % Common exit
+ dup dup (0001) eq exch dup (0011) eq exch (1011) eq or or {pop right exit} if
+ dup dup (0010) eq exch dup (1010) eq exch (1110) eq or or {pop down exit} if
+ dup dup (1000) eq exch dup (1100) eq exch (1101) eq or or {pop left exit} if
+ dup dup (0100) eq exch dup (0101) eq exch (0111) eq or or {pop up exit} if
+ dup (1001) eq {
+ dir 2 eq {pop left exit} {pop right exit} ifelse
+ } { % 0110
+ dir 1 eq {pop down exit} {pop up exit} ifelse
+ } ifelse
+ } repeat
+ x sx eq y sy eq and dir sdir eq and {exit} if
+ } loop
+ counttomark array astore exch pop
+
+ } bind def
+
+ % Set RGB or CMYK color depending on length of given hex string
+ /setanycolor {
+ /anycolor exch def
+ anycolor length 6 eq {
+ (< >) 8 string copy dup 1 anycolor putinterval cvx exec {255 div} forall setrgbcolor
+ } if
+ anycolor length 8 eq {
+ (< >) 10 string copy dup 1 anycolor putinterval cvx exec {255 div} forall setcmykcolor
+ } if
+ } bind def
+
+ % Plot a layer of single colour
+ /drawlayer {
+
+ /pixsorig pixs def
+ /pixs exch def
+
+ % Pad the bitmap on all sides
+ /pixs [
+ pixx 2 add {0} repeat
+ 0 pixx pixs length 1 sub {
+ 0 exch
+ pixs exch pixx getinterval aload pop
+ 0
+ } for
+ pixx 2 add {0} repeat
+ ] def
+ /pixx pixx 2 add def
+ /pixy pixy 2 add def
+
+ % Cache of visited corners for each direction
+ /cache [ pixs length {0} repeat ] def
+
+ % Construct paths by tracing regions avoiding duplication by using the cache
+ /paths [
+ 0 1 pixy 2 sub {
+ /j exch def
+ 0 1 pixx 2 sub {
+ /i exch def
+ /k i j abcd def
+ k (0001) eq k (1001) eq or { % Black region stem corners
+ 8 i j cget 0 eq {
+ i j trace
+ } if
+ } if
+ k (1110) eq { % White region stem corner
+ 4 i j cget 0 eq {
+ i j trace
+ } if
+ } if
+ } for
+ } for
+ ] def
+
+ % Revert the bitmap size
+ /pixx pixx 2 sub def
+ /pixy pixy 2 sub def
+
+ % Draw the image
+ newpath
+ paths {
+ /p exch def
+ /len p length def
+ p len 1 sub get aload pop
+ p 0 get aload pop
+ 0 1 len 1 sub { % x1 y1 x2 y2
+ /i exch def
+ p i 1 add len mod get aload pop 6 -2 roll % x3 y3 x1 y1 x2 y2
+ 5 index inkspreadh
+ 4 index 4 -1 roll lt {add} {sub} ifelse % y3<y1 ? x2+i : x2-i
+ 4 1 roll
+ 4 index inkspreadv
+ 4 index 4 -1 roll gt {add} {sub} ifelse % x3>x1 ? y2+i : y2-i
+ 4 -1 roll exch pixy exch sub
+ i 0 eq {moveto} {lineto} ifelse
+ } for % x2 y2 x3 y3
+ closepath
+ pop pop pop pop
+ } forall
+ fill
+
+ /pixs pixsorig def
+
+ } bind def
+
+ /drawlayerdots {
+
+ /pixsorig pixs def
+ /pixs exch def
+
+ newpath
+ 0 1 pixs length 1 sub {
+ dup pixx mod /x exch def
+ pixx idiv /y exch def
+ x y xyget 1 eq {
+ x 0.5 add pixy y sub 0.5 sub moveto
+ x 0.5 add pixy y sub 0.5 sub 0.5 inkspread sub 0 360 arc
+ } if
+ } for
+ fill
+
+ /pixs pixsorig def
+
+ } bind def
+
+ gsave
+
+ % Draw the image
+ /inkspread inkspread 2 div def
+ /inkspreadh inkspreadh 2 div def
+ /inkspreadv inkspreadv 2 div def
+ currentpoint translate
+ width pixx div 72 mul height pixy div 72 mul scale
+ 0 0 moveto pixx 0 lineto pixx pixy lineto 0 pixy lineto closepath
+ backgroundcolor (unset) ne { gsave backgroundcolor setanycolor fill grestore } if
+
+ colormap (unset) eq {
+ /colormap << 1 barcolor >> def
+ } if
+
+ colormap {
+ setanycolor
+ /key exch def
+ [
+ pixs { key eq {1} {0} ifelse } forall
+ ] dotty {drawlayerdots} {drawlayer} ifelse
+ } forall
+
+ % Display the text for elements in the text array
+ textcolor (unset) ne { textcolor setanycolor } if
+ includetext {
+ textxalign (unset) eq textyalign (unset) eq and alttext () eq and {
+ /s 0 def /fn () def
+ txt {
+ {} forall
+ 2 copy s ne exch fn ne or {
+ 2 copy /s exch def /fn exch def
+ selectfont
+ } {
+ pop pop
+ } ifelse
+ moveto show
+ } forall
+ } {
+ textfont textsize selectfont
+ alttext () eq {
+ /txt [ txt { 0 get {} forall } forall ] def
+ /tstr txt length string def
+ 0 1 txt length 1 sub { dup txt exch get tstr 3 1 roll put } for
+ } {
+ /tstr alttext def
+ } ifelse
+
+ % Find true ascent of font
+ tstr length 0 eq {
+ 0
+ } {
+ gsave
+ newpath 0 0 moveto (0) false charpath pathbbox
+ 4 1 roll pop pop pop
+ grestore
+ currentfont /PaintType known {currentfont /PaintType get 2 eq} {false} ifelse
+ currentfont /StrokeWidth known and {
+ currentfont /StrokeWidth get 2 div 0 exch
+ currentfont /FontMatrix get dtransform
+ dup mul exch dup mul add sqrt
+ add
+ } if
+ } ifelse
+ /textascent exch def
+ /textwidth tstr stringwidth pop tstr length 1 sub textgaps mul add def
+
+ /textxpos textxoffset x textwidth sub 2 div add def
+ textxalign (left) eq { /textxpos textxoffset def } if
+ textxalign (right) eq { /textxpos x textxoffset sub textwidth sub def } if
+ textxalign (offleft) eq { /textxpos textwidth textxoffset add neg def } if
+ textxalign (offright) eq { /textxpos x textxoffset add def } if
+ textxalign (justify) eq textwidth x lt and {
+ /textxpos 0 def
+ /textgaps x textwidth sub tstr length 1 sub div def
+ } if
+ /textypos textyoffset textascent add 1 add neg def
+ textyalign (above) eq { /textypos textyoffset pixy add 1 add def } if
+ textyalign (center) eq { /textypos textyoffset pixy textascent sub 2 div add def } if
+ textxpos textypos moveto textgaps 0 tstr ashow
+ } ifelse
+ } if
+
+ grestore
+
+ end
+
+}
+[/barcode] {null def} forall
+bind def
+/renmatrix dup load /uk.co.terryburton.bwipp defineresource pop
+end
+/setpacking where {pop setpacking} if
+%%EndData
+%%EndResource
+
+%%BeginResource: uk.co.terryburton.bwipp qrcode 0.0 2020040100 303640 335045
+%%BeginData: 1292 ASCII Lines
+/setpacking where {pop currentpacking true setpacking} if
+1 dict
+dup /raiseerror dup /uk.co.terryburton.bwipp findresource put
+dup /renmatrix dup /uk.co.terryburton.bwipp findresource put
+begin
+/qrcode {
+
+ 20 dict begin
+
+ /options exch def
+ /barcode exch def
+
+ /dontdraw false def
+ /format (unset) def % full or micro. rMQR symbols are specified using version
+ /version (unset) def % 1-40 or M1-M4 or R7x43, etc
+ /eclevel (unset) def % full: L, M, Q, H; micro: L, M, Q; rmqr: M, H
+ /parse false def
+ /parsefnc false def
+ /mask -1 def
+
+ % Parse the input options
+ options type /stringtype eq {
+ 1 dict begin
+ options {
+ token false eq {exit} if dup length string cvs (=) search
+ true eq {cvlit exch pop exch def} {cvlit true def} ifelse
+ } loop
+ currentdict end /options exch def
+ } if
+ options {def} forall
+
+ /mask mask cvi def
+
+ % If version is supplied and format is not given then set format to correspond
+ version (unset) ne {
+ format (unset) eq {
+ (full)
+ version 0 1 getinterval (M) eq { pop (micro) } if
+ version 0 1 getinterval (R) eq { pop (rmqr) } if
+ /format exch def
+ } if
+ } {
+ format (unset) eq { /format (full) def } if % Default to full
+ } ifelse
+
+ % Parse ordinals of the form ^NNN to ASCII
+ parse {
+ /msg barcode length string def
+ /j 0 def
+ barcode
+ { % loop
+ (^) search {
+ dup msg exch j exch putinterval
+ length j add 1 add /j exch def
+ pop
+ dup 0 3 getinterval cvi msg exch j 1 sub exch put
+ dup length 3 sub 3 exch getinterval
+ } {
+ dup msg exch j exch putinterval
+ length j add /j exch def
+ /barcode msg 0 j getinterval def
+ exit
+ } ifelse
+ } loop
+ } if
+
+ /barlen barcode length def
+
+ % Convert input into bytes accounting for FNC characters
+ /fn1 -1 def
+ /fncvals <<
+ (FNC1) fn1
+ >> def
+ /msg barlen array def
+ /i 0 def /j 0 def {
+ i barlen eq {exit} if
+ /char barcode i get def
+ parsefnc char 94 eq and i barlen 4 sub lt and {
+ barcode i 1 add get 94 ne {
+ /char fncvals barcode i 1 add 4 getinterval get def
+ /i i 4 add def
+ } {
+ /i i 1 add def
+ } ifelse
+ } if
+ msg j char put
+ /i i 1 add def
+ /j j 1 add def
+ } loop
+ /msg msg 0 j getinterval def
+ /msglen msg length def
+
+ % If FNC1 in first position then escape % as %%
+ /fnc1first false def
+ msglen 0 gt {
+ msg 0 get fn1 eq {
+ /fnc1first true def
+ /msg [ msg 1 msglen 1 sub getinterval { dup 37 eq {dup} if } forall ] def
+ /msglen msg length def
+ } if
+ } if
+
+ % Default error correction level
+ eclevel (unset) eq {/eclevel format (micro) ne {(M)} {(L)} ifelse def} if
+
+ % Enumerate vergrps
+ [
+ /v1to9 /v10to26 /v27to40
+ /vM1 /vM2 /vM3 /vM4
+ /vR7x43 /vR7x59 /vR7x77 /vR7x99 /vR7x139
+ /vR9x43 /vR9x59 /vR9x77 /vR9x99 /vR9x139
+ /vR11x27 /vR11x43 /vR11x59 /vR11x77 /vR11x99 /vR11x139
+ /vR13x27 /vR13x43 /vR13x59 /vR13x77 /vR13x99 /vR13x139
+ /vR15x43 /vR15x59 /vR15x77 /vR15x99 /vR15x139
+ /vR17x43 /vR17x59 /vR17x77 /vR17x99 /vR17x139
+ ] 0 exch {1 index def 1 add} forall pop
+
+ % Convert from input into message bitstream
+ /N 0 def /A 1 def /B 2 def /K 3 def
+
+ /Nexcl <<
+ [
+ 16#30 1 16#39 {} for
+ ] {-1} forall
+ >> def
+
+ /Aexcl <<
+ [
+ 16#20 16#24 16#25 16#2A 16#2B 16#2D 16#2E 16#2F 16#3A
+ 16#41 1 16#5A {} for
+ fn1
+ ] {-1} forall
+ >> def
+
+ /Bexcl <<
+ [
+ 16#00 1 16#1F {} for
+ 16#21 16#22 16#23 16#26 16#27 16#28 16#29 16#2C
+ 16#3B 1 16#40 {} for
+ 16#5B 1 16#7F {} for
+ 16#A0 1 16#DF {} for
+ ] {-1} forall
+ >> def
+
+ /Kexcl <<
+ [
+ 16#81 1 16#9F {} for
+ 16#E0 1 16#EB {} for
+ ] {-1} forall
+ >> def
+
+ /mids [ % N A B K
+ [ (0001) (0010) (0100) (1000) ] % v1to9
+ [ (0001) (0010) (0100) (1000) ] % v10to26
+ [ (0001) (0010) (0100) (1000) ] % v27to40
+ [ () -1 -1 -1 ] % vM1
+ [ (0) (1) -1 -1 ] % vM2
+ [ (00) (01) (10) (11) ] % vM3
+ [ (000) (001) (010) (011) ] % vM4
+ 32 {
+ [ (001) (010) (011) (100) ] % rMQR
+ } repeat
+ ] def
+
+ /cclens [ % N A B K
+ [ 10 9 8 8 ] % v1to9
+ [ 12 11 16 10 ] % v10to26
+ [ 14 13 16 12 ] % v27to40
+ [ 3 -1 -1 -1 ] % vM1
+ [ 4 3 -1 -1 ] % vM2
+ [ 5 4 4 3 ] % vM3
+ [ 6 5 5 4 ] % vM4
+ [ 4 3 3 2 ] % vR7x43
+ [ 5 5 4 3 ] % vR7x59
+ [ 6 5 5 4 ] % vR7x77
+ [ 7 6 5 5 ] % vR7x99
+ [ 7 6 6 5 ] % vR7x139
+ [ 5 5 4 3 ] % vR9x43
+ [ 6 5 5 4 ] % vR9x59
+ [ 7 6 5 5 ] % vR9x77
+ [ 7 6 6 5 ] % vR9x99
+ [ 8 7 6 6 ] % vR9x139
+ [ 4 4 3 2 ] % vR11x27
+ [ 6 5 5 4 ] % vR11x43
+ [ 7 6 5 5 ] % vR11x59
+ [ 7 6 6 5 ] % vR11x77
+ [ 8 7 6 6 ] % vR11x99
+ [ 8 7 7 6 ] % vR11x139
+ [ 5 5 4 3 ] % vR13x27
+ [ 6 6 5 5 ] % vR13x43
+ [ 7 6 6 5 ] % vR13x59
+ [ 8 7 6 6 ] % vR13x77
+ [ 8 7 7 6 ] % vR13x99
+ [ 8 8 7 7 ] % vR13x139
+ [ 7 6 6 5 ] % vR15x43
+ [ 7 7 6 5 ] % vR15x59
+ [ 8 7 7 6 ] % vR15x77
+ [ 8 7 7 6 ] % vR15x99
+ [ 9 8 7 7 ] % vR15x139
+ [ 7 6 6 5 ] % vR17x43
+ [ 8 7 6 6 ] % vR17x59
+ [ 8 7 7 6 ] % vR17x77
+ [ 8 8 7 6 ] % vR17x99
+ [ 9 8 8 7 ] % vR17x139
+ ] def
+
+ /termlens [
+ 3 {
+ 4 % Full
+ } repeat
+ 3 % vM1
+ 5 % vM2
+ 7 % vM3
+ 9 % vM4
+ 32 {
+ 3 % rMQR
+ } repeat
+ ] def
+
+ % Encoding functions
+ /tobin {
+ string dup length 1 sub 0 exch 1 exch {1 index exch 48 put} for
+ dup 3 -1 roll 2 2 index length string cvrs dup length 2 index length exch sub exch putinterval
+ } bind def
+
+ % Alphanumeric character to value map
+ /charmap (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:) def
+ /charvals 44 dict def
+ 0 1 44 {dup charmap exch get exch charvals 3 1 roll put} for
+
+ /encA {
+ /in exch def
+ fnc1first { % FNC1 as %
+ /in [ in { dup -1 eq {pop 37} if } forall ] def
+ } if
+ /out in length 11 mul 2 idiv 1 add string def
+ /k 0 def /m 0 def {
+ k in length eq {exit} if
+ k in length 1 sub lt {
+ charvals in k get get 45 mul charvals in k 1 add get get add 11 tobin
+ /k k 2 add def
+ } { % Final character
+ charvals in k get get 6 tobin
+ /k k 1 add def
+ } ifelse
+ dup out exch m exch putinterval
+ length m add /m exch def
+ } loop
+ out 0 m getinterval
+ } bind def
+
+ /encN {
+ /in exch def
+ /out in length 10 mul 3 idiv 1 add string def
+ /k 0 def /m 0 def {
+ k in length eq {exit} if
+ k in length 2 sub lt {
+ in k 3 getinterval 0 exch {exch 10 mul 48 sub add} forall 10 tobin
+ /k k 3 add def
+ } {
+ k in length 2 sub eq { % Two final digits
+ in k 2 getinterval 0 exch {exch 10 mul 48 sub add} forall 7 tobin
+ /k k 2 add def
+ } { % One final digit
+ in k 1 getinterval 0 exch {exch 10 mul 48 sub add} forall 4 tobin
+ /k k 1 add def
+ } ifelse
+ } ifelse
+ dup out exch m exch putinterval
+ length m add /m exch def
+ } loop
+ out 0 m getinterval
+ } bind def
+
+ /encB {
+ /in exch def
+ fnc1first { % FNC1 as GS
+ /in [ in { dup -1 eq {pop 29} if } forall ] def
+ } if
+ /out in length 8 mul string def
+ 0 1 in length 1 sub {
+ /k exch def
+ in k get cvi 8 tobin
+ out k 8 mul 3 -1 roll putinterval
+ } for
+ out
+ } bind def
+
+ /encK {
+ /in exch def
+ /out in length 2 idiv 13 mul string def
+ /k 0 def /m 0 def {
+ k in length eq {exit} if
+ in k get 256 mul in k 1 add get add
+ dup 16#E040 lt {16#8140} {16#C140} ifelse sub
+ dup -8 bitshift 16#C0 mul exch 16#00FF and add
+ 13 tobin dup out exch m exch putinterval
+ length m add /m exch def
+ /k k 2 add def
+ } loop
+ out
+ } bind def
+
+ /encfuncs [ /encN /encA /encB /encK ] def
+
+ /addtobits {
+ dup bits j 3 -1 roll putinterval
+ length j add /j exch def
+ } bind def
+
+ /numNs [ msglen {0} repeat 0 ] def
+ /numAs [ msglen {0} repeat 0 ] def
+ /numBs [ msglen {0} repeat 0 ] def
+ /numKs [ msglen {0} repeat -1 ] def
+ /nextNs [ msglen {0} repeat 9999 ] def
+ /nextBs [ msglen {0} repeat 9999 ] def
+ /nextAs [ msglen {0} repeat 9999 ] def
+ /nextKs [ msglen {0} repeat 9999 ] def
+ msglen 1 sub -1 0 {
+ /i exch def
+ /barchar msg i get def
+ Kexcl barchar known {
+ nextKs i 0 put
+ numKs i numKs i 1 add get 1 add put
+ } {
+ nextKs i nextKs i 1 add get 1 add put
+ } ifelse
+ Nexcl barchar known {
+ nextNs i 0 put
+ numNs i numNs i 1 add get 1 add put
+ } {
+ nextNs i nextNs i 1 add get 1 add put
+ } ifelse
+ Bexcl barchar known {
+ nextBs i 0 put
+ numBs i numBs i 1 add get 1 add put
+ } {
+ nextBs i nextBs i 1 add get 1 add put
+ } ifelse
+ Aexcl barchar known {
+ nextAs i 0 put
+ numAs i numAs i 1 add get 1 add put
+ } {
+ nextAs i nextAs i 1 add get 1 add put
+ } ifelse
+ } for
+ /numKs [ numKs {1 add 2 idiv} forall ] def
+
+ /KbeforeB {numK exch ver get ge nextBs numK 2 mul i add get 0 eq and} bind def
+ /KbeforeA {numK exch ver get ge nextAs numK 2 mul i add get 0 eq and} bind def
+ /KbeforeN {numK exch ver get ge nextNs numK 2 mul i add get 0 eq and} bind def
+ /KbeforeE {numK exch ver get ge numK 2 mul i add msglen eq and} bind def
+ /AbeforeK {numA exch ver get ge nextKs numA i add get 0 eq and} bind def
+ /AbeforeB {numA exch ver get ge nextBs numA i add get 0 eq and} bind def
+ /AbeforeN {numA exch ver get ge nextNs numA i add get 0 eq and} bind def
+ /AbeforeE {numA exch ver get ge numA i add msglen eq and} bind def
+ /NbeforeK {numN exch ver get ge nextKs numN i add get 0 eq and} bind def
+ /NbeforeB {numN exch ver get ge nextBs numN i add get 0 eq and} bind def
+ /NbeforeA {numN exch ver get ge nextAs numN i add get 0 eq and} bind def
+ /NbeforeE {numN exch ver get ge numN i add msglen eq and} bind def
+
+ % Elements of the encoded message have differing lengths based on the
+ % resulting symbol size. The symbol sizes with different element lengths
+ % are batched into vergrps. To pick the smallest symbol that holds our
+ % content we encode the message according to each available vergrp, based
+ % on the format of symbol.
+
+ % Determine which groups we need to encode
+ version (unset) ne {
+ % A specific version of symbol is given so encode in just the corresponding vergrp
+ /verset <<
+ % Full
+ 0 1 9 { 10 2 string cvrs v1to9 } for
+ 10 1 26 { 10 2 string cvrs v10to26 } for
+ 27 1 40 { 10 2 string cvrs v27to40 } for
+
+ % Micro
+ (M1) vM1 (M2) vM2 (M3) vM3 (M4) vM4
+
+ % rMQR
+ (R7x43) vR7x43 (R7x59) vR7x59 (R7x77) vR7x77 (R7x99) vR7x99 (R7x139) vR7x139
+ (R9x43) vR9x43 (R9x59) vR9x59 (R9x77) vR9x77 (R9x99) vR9x99 (R9x139) vR9x139
+ (R11x27) vR11x27 (R11x43) vR11x43 (R11x59) vR11x59 (R11x77) vR11x77 (R11x99) vR11x99 (R11x139) vR11x139
+ (R13x27) vR13x27 (R13x43) vR13x43 (R13x59) vR13x59 (R13x77) vR13x77 (R13x99) vR13x99 (R13x139) vR13x139
+ (R15x43) vR15x43 (R15x59) vR15x59 (R15x77) vR15x77 (R15x99) vR15x99 (R15x139) vR15x139
+ (R17x43) vR17x43 (R17x59) vR17x59 (R17x77) vR17x77 (R17x99) vR17x99 (R17x139) vR17x139
+ >> version get [ exch ] def
+ } {
+ % Just the format is specified so encode in each vergrp for the type of symbol
+ format (full) eq { /verset [v1to9 v10to26 v27to40] def } if
+ format (micro) eq { /verset [vM1 vM2 vM3 vM4] def } if
+ % rMQR symbols are accessed with an explicit version
+ } ifelse
+
+ % Encode unterminated bitsream for each compatible vergrp separately
+ /msgbits [ 39 {-1} repeat ] def
+ /e 10000 def
+ verset {
+ /ver exch def
+
+ % Derive optimal sequence
+ /mode -1 def /seq [] def /i 0 def {
+ i msglen ge {exit} if
+ /numK numKs i get def
+ /numB numBs i get def
+ /numA numAs i get def
+ /numN numNs i get def
+ ver vM1 eq numA 1 ge and {/seq -1 def exit} if
+ ver vM1 eq numB 1 ge and {/seq -1 def exit} if
+ ver vM1 eq numK 1 ge and {/seq -1 def exit} if
+ ver vM2 eq numB 1 ge and {/seq -1 def exit} if
+ ver vM2 eq numK 1 ge and {/seq -1 def exit} if
+ { % common exit
+ ver vR7x43 ge { % TODO rMQR is binary only for now
+ B exit
+ } if
+ mode -1 eq { % Set initial mode
+ [ 1 1 1 e e 1 1] KbeforeA {K exit} if
+ [ 1 1 1 e e 1 1] KbeforeN {K exit} if
+ [ 5 5 6 e e 2 3] KbeforeB {K exit} if
+ [ 1 1 1 e e 1 1] KbeforeE {K exit} if
+ numK 1 ge {B exit} if
+ [ 6 7 8 e e 3 4] AbeforeB {A exit} if
+ [ 1 1 1 e 1 1 1] AbeforeE {A exit} if
+ numA 1 ge {
+ ver vM2 ne {B} {A} ifelse exit
+ } if
+ [ 4 4 5 e e 2 3] NbeforeB {N exit} if
+ [ 1 1 1 e e 1 1] NbeforeB {B exit} if
+ [ 7 8 9 e 3 4 5] NbeforeA {N exit} if
+ [ 1 1 1 e 1 1 1] NbeforeA {A exit} if
+ numN 1 ge {N exit} if
+ B exit
+ } if
+ mode B eq {
+ [ 9 12 13 e e 4 5] KbeforeB {K exit} if
+ [ 9 10 12 e e 4 5] KbeforeA {K exit} if
+ [ 9 10 11 e e 5 6] KbeforeN {K exit} if
+ [ 4 5 6 e e 2 3] KbeforeE {K exit} if
+ [11 12 14 e e 5 7] AbeforeK {A exit} if
+ [11 15 16 e e 6 7] AbeforeB {A exit} if
+ [12 13 15 e e 6 8] AbeforeN {A exit} if
+ [ 6 7 8 e e 3 4] AbeforeE {A exit} if
+ [ 6 7 8 e e 3 4] NbeforeK {N exit} if
+ [ 6 8 9 e e 3 4] NbeforeB {N exit} if
+ [ 6 7 8 e e 3 4] NbeforeA {N exit} if
+ [ 3 4 5 e e 2 3] NbeforeE {N exit} if
+ B exit
+ } if
+ mode A eq {
+ numK 1 ge {K exit} if
+ numB 1 ge {B exit} if
+ [13 15 17 e 5 7 9] NbeforeA {N exit} if
+ [13 17 18 e e 7 9] NbeforeB {N exit} if
+ [ 7 8 9 e 3 4 5] NbeforeE {N exit} if
+ numA 1 ge numN 1 ge or {A exit} if
+ B exit
+ } if
+ mode N eq {
+ numK 1 ge {K exit} if
+ numB 1 ge {B exit} if
+ numA 1 ge {A exit} if
+ numN 1 ge {N exit} if
+ B exit
+ } if
+ mode K eq {
+ numB 1 ge {B exit} if
+ numA 1 ge {A exit} if
+ numN 1 ge {N exit} if
+ numK 1 ge {K exit} if
+ B exit
+ } if
+ } loop
+ dup K eq fnc1first and {pop B} if % No kanji with fnc1first
+ dup mode eq { % Same mode encode directly
+ pop
+ /dat msg i mode K eq {2} {1} ifelse getinterval def
+ /seq [
+ seq aload pop
+ [ exch aload pop dat aload pop ]
+ ] def
+ } { % Change mode
+ /mode exch def
+ mode K eq {K msg i numK 2 mul getinterval} if
+ mode B eq {B msg i numB getinterval} if
+ mode A eq {A msg i numA getinterval} if
+ mode N eq {N msg i numN getinterval} if
+ /dat exch def /sw exch def
+ /seq [ seq aload pop sw dat ] def
+ } ifelse
+ /i i dat length add def
+ } loop
+
+ % Encode the sequence
+ { % common exit
+ seq -1 eq {exit} if % Sequence not available
+ /bits 23648 string def
+ /j 0 def
+ fnc1first {
+ ver vR7x43 lt { (0101) } { (101) } ifelse addtobits
+ } if
+ /abort false def
+ 0 2 seq length 1 sub {
+ /i exch def
+ /mode seq i get def
+ mids ver get mode get addtobits
+ /cclen cclens ver get mode get def
+ /chars seq i 1 add get def
+ chars length 2 cclen exp cvi ge { % Too many characters for cc indicator
+ /abort true def exit
+ } if
+ chars length mode K eq {2 idiv} if cclen tobin addtobits
+ chars encfuncs mode get load exec addtobits
+ } for
+ abort {exit} if
+ /bits bits 0 j getinterval def
+ msgbits ver bits put
+ exit
+ } loop
+ } forall
+
+ % Lookup the most appropriate symbol specification
+ /metrics [
+ % format vers vergrp rows cols align modules error codewords error correction blocks
+ % L M Q H L1 L2 M1 M2 Q1 Q2 H1 H2
+ [ (micro) (M1) vM1 11 11 98 99 36 [ 2 99 99 99 ] [ 1 0 -1 -1 -1 -1 -1 -1 ] ]
+ [ (micro) (M2) vM2 13 13 98 99 80 [ 5 6 99 99 ] [ 1 0 1 0 -1 -1 -1 -1 ] ]
+ [ (micro) (M3) vM3 15 15 98 99 132 [ 6 8 99 99 ] [ 1 0 1 0 -1 -1 -1 -1 ] ]
+ [ (micro) (M4) vM4 17 17 98 99 192 [ 8 10 14 99 ] [ 1 0 1 0 1 0 -1 -1 ] ]
+ [ (full) (1) v1to9 21 21 98 99 208 [ 7 10 13 17 ] [ 1 0 1 0 1 0 1 0 ] ]
+ [ (full) (2) v1to9 25 25 18 99 359 [ 10 16 22 28 ] [ 1 0 1 0 1 0 1 0 ] ]
+ [ (full) (3) v1to9 29 29 22 99 567 [ 15 26 36 44 ] [ 1 0 1 0 2 0 2 0 ] ]
+ [ (full) (4) v1to9 33 33 26 99 807 [ 20 36 52 64 ] [ 1 0 2 0 2 0 4 0 ] ]
+ [ (full) (5) v1to9 37 37 30 99 1079 [ 26 48 72 88 ] [ 1 0 2 0 2 2 2 2 ] ]
+ [ (full) (6) v1to9 41 41 34 99 1383 [ 36 64 96 112 ] [ 2 0 4 0 4 0 4 0 ] ]
+ [ (full) (7) v1to9 45 45 22 38 1568 [ 40 72 108 130 ] [ 2 0 4 0 2 4 4 1 ] ]
+ [ (full) (8) v1to9 49 49 24 42 1936 [ 48 88 132 156 ] [ 2 0 2 2 4 2 4 2 ] ]
+ [ (full) (9) v1to9 53 53 26 46 2336 [ 60 110 160 192 ] [ 2 0 3 2 4 4 4 4 ] ]
+ [ (full) (10) v10to26 57 57 28 50 2768 [ 72 130 192 224 ] [ 2 2 4 1 6 2 6 2 ] ]
+ [ (full) (11) v10to26 61 61 30 54 3232 [ 80 150 224 264 ] [ 4 0 1 4 4 4 3 8 ] ]
+ [ (full) (12) v10to26 65 65 32 58 3728 [ 96 176 260 308 ] [ 2 2 6 2 4 6 7 4 ] ]
+ [ (full) (13) v10to26 69 69 34 62 4256 [ 104 198 288 352 ] [ 4 0 8 1 8 4 12 4 ] ]
+ [ (full) (14) v10to26 73 73 26 46 4651 [ 120 216 320 384 ] [ 3 1 4 5 11 5 11 5 ] ]
+ [ (full) (15) v10to26 77 77 26 48 5243 [ 132 240 360 432 ] [ 5 1 5 5 5 7 11 7 ] ]
+ [ (full) (16) v10to26 81 81 26 50 5867 [ 144 280 408 480 ] [ 5 1 7 3 15 2 3 13 ] ]
+ [ (full) (17) v10to26 85 85 30 54 6523 [ 168 308 448 532 ] [ 1 5 10 1 1 15 2 17 ] ]
+ [ (full) (18) v10to26 89 89 30 56 7211 [ 180 338 504 588 ] [ 5 1 9 4 17 1 2 19 ] ]
+ [ (full) (19) v10to26 93 93 30 58 7931 [ 196 364 546 650 ] [ 3 4 3 11 17 4 9 16 ] ]
+ [ (full) (20) v10to26 97 97 34 62 8683 [ 224 416 600 700 ] [ 3 5 3 13 15 5 15 10 ] ]
+ [ (full) (21) v10to26 101 101 28 50 9252 [ 224 442 644 750 ] [ 4 4 17 0 17 6 19 6 ] ]
+ [ (full) (22) v10to26 105 105 26 50 10068 [ 252 476 690 816 ] [ 2 7 17 0 7 16 34 0 ] ]
+ [ (full) (23) v10to26 109 109 30 54 10916 [ 270 504 750 900 ] [ 4 5 4 14 11 14 16 14 ] ]
+ [ (full) (24) v10to26 113 113 28 54 11796 [ 300 560 810 960 ] [ 6 4 6 14 11 16 30 2 ] ]
+ [ (full) (25) v10to26 117 117 32 58 12708 [ 312 588 870 1050 ] [ 8 4 8 13 7 22 22 13 ] ]
+ [ (full) (26) v10to26 121 121 30 58 13652 [ 336 644 952 1110 ] [ 10 2 19 4 28 6 33 4 ] ]
+ [ (full) (27) v27to40 125 125 34 62 14628 [ 360 700 1020 1200 ] [ 8 4 22 3 8 26 12 28 ] ]
+ [ (full) (28) v27to40 129 129 26 50 15371 [ 390 728 1050 1260 ] [ 3 10 3 23 4 31 11 31 ] ]
+ [ (full) (29) v27to40 133 133 30 54 16411 [ 420 784 1140 1350 ] [ 7 7 21 7 1 37 19 26 ] ]
+ [ (full) (30) v27to40 137 137 26 52 17483 [ 450 812 1200 1440 ] [ 5 10 19 10 15 25 23 25 ] ]
+ [ (full) (31) v27to40 141 141 30 56 18587 [ 480 868 1290 1530 ] [ 13 3 2 29 42 1 23 28 ] ]
+ [ (full) (32) v27to40 145 145 34 60 19723 [ 510 924 1350 1620 ] [ 17 0 10 23 10 35 19 35 ] ]
+ [ (full) (33) v27to40 149 149 30 58 20891 [ 540 980 1440 1710 ] [ 17 1 14 21 29 19 11 46 ] ]
+ [ (full) (34) v27to40 153 153 34 62 22091 [ 570 1036 1530 1800 ] [ 13 6 14 23 44 7 59 1 ] ]
+ [ (full) (35) v27to40 157 157 30 54 23008 [ 570 1064 1590 1890 ] [ 12 7 12 26 39 14 22 41 ] ]
+ [ (full) (36) v27to40 161 161 24 50 24272 [ 600 1120 1680 1980 ] [ 6 14 6 34 46 10 2 64 ] ]
+ [ (full) (37) v27to40 165 165 28 54 25568 [ 630 1204 1770 2100 ] [ 17 4 29 14 49 10 24 46 ] ]
+ [ (full) (38) v27to40 169 169 32 58 26896 [ 660 1260 1860 2220 ] [ 4 18 13 32 48 14 42 32 ] ]
+ [ (full) (39) v27to40 173 173 26 54 28256 [ 720 1316 1950 2310 ] [ 20 4 40 7 43 22 10 67 ] ]
+ [ (full) (40) v27to40 177 177 30 58 29648 [ 750 1372 2040 2430 ] [ 19 6 18 31 34 34 20 61 ] ]
+ [ (rmqr) (R7x43) vR7x43 7 43 22 99 104 [ 99 7 99 10 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R7x59) vR7x59 7 59 20 40 171 [ 99 9 99 14 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R7x77) vR7x77 7 77 26 52 261 [ 99 12 99 22 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R7x99) vR7x99 7 99 24 50 358 [ 99 16 99 30 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R7x139) vR7x139 7 139 28 56 545 [ 99 24 99 44 ] [ -1 -1 1 0 -1 -1 2 0 ] ]
+ [ (rmqr) (R9x43) vR9x43 9 43 22 99 170 [ 99 9 99 14 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R9x59) vR9x59 9 59 20 40 267 [ 99 12 99 22 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R9x77) vR9x77 9 77 26 52 393 [ 99 18 99 32 ] [ -1 -1 1 0 -1 -1 1 1 ] ]
+ [ (rmqr) (R9x99) vR9x99 9 99 24 50 532 [ 99 24 99 44 ] [ -1 -1 1 0 -1 -1 2 0 ] ]
+ [ (rmqr) (R9x139) vR9x139 9 139 28 56 797 [ 99 36 99 66 ] [ -1 -1 1 1 -1 -1 3 0 ] ]
+ [ (rmqr) (R11x27) vR11x27 11 27 98 99 122 [ 99 8 99 10 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R11x43) vR11x43 11 43 22 99 249 [ 99 12 99 20 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R11x59) vR11x59 11 59 20 40 376 [ 99 16 99 32 ] [ -1 -1 1 0 -1 -1 1 1 ] ]
+ [ (rmqr) (R11x77) vR11x77 11 77 26 52 538 [ 99 24 99 44 ] [ -1 -1 1 0 -1 -1 1 1 ] ]
+ [ (rmqr) (R11x99) vR11x99 11 99 24 50 719 [ 99 32 99 60 ] [ -1 -1 1 1 -1 -1 1 1 ] ]
+ [ (rmqr) (R11x139) vR11x139 11 139 28 56 1062 [ 99 48 99 90 ] [ -1 -1 2 0 -1 -1 3 0 ] ]
+ [ (rmqr) (R13x27) vR13x27 13 27 98 99 172 [ 99 9 99 14 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R13x43) vR13x43 13 43 22 99 329 [ 99 14 99 28 ] [ -1 -1 1 0 -1 -1 1 0 ] ]
+ [ (rmqr) (R13x59) vR13x59 13 59 20 40 486 [ 99 22 99 40 ] [ -1 -1 1 0 -1 -1 2 0 ] ]
+ [ (rmqr) (R13x77) vR13x77 13 77 26 52 684 [ 99 32 99 56 ] [ -1 -1 1 1 -1 -1 1 1 ] ]
+ [ (rmqr) (R13x99) vR13x99 13 99 24 50 907 [ 99 40 99 78 ] [ -1 -1 1 1 -1 -1 1 2 ] ]
+ [ (rmqr) (R13x139) vR13x139 13 139 28 56 1328 [ 99 60 99 112 ] [ -1 -1 2 1 -1 -1 2 2 ] ]
+ [ (rmqr) (R15x43) vR15x43 15 43 22 99 409 [ 99 18 99 36 ] [ -1 -1 1 0 -1 -1 1 1 ] ]
+ [ (rmqr) (R15x59) vR15x59 15 59 20 40 596 [ 99 26 99 48 ] [ -1 -1 1 0 -1 -1 2 0 ] ]
+ [ (rmqr) (R15x77) vR15x77 15 77 26 52 830 [ 99 36 99 72 ] [ -1 -1 1 1 -1 -1 2 1 ] ]
+ [ (rmqr) (R15x99) vR15x99 15 99 24 50 1095 [ 99 48 99 88 ] [ -1 -1 2 0 -1 -1 4 0 ] ]
+ [ (rmqr) (R15x139) vR15x139 15 139 28 56 1594 [ 99 72 99 130 ] [ -1 -1 2 1 -1 -1 1 4 ] ]
+ [ (rmqr) (R17x43) vR17x43 17 43 22 99 489 [ 99 22 99 40 ] [ -1 -1 1 0 -1 -1 1 1 ] ]
+ [ (rmqr) (R17x59) vR17x59 17 59 20 40 706 [ 99 32 99 60 ] [ -1 -1 2 0 -1 -1 2 0 ] ]
+ [ (rmqr) (R17x77) vR17x77 17 77 26 52 976 [ 99 44 99 84 ] [ -1 -1 2 0 -1 -1 1 2 ] ]
+ [ (rmqr) (R17x99) vR17x99 17 99 24 50 1283 [ 99 60 99 104 ] [ -1 -1 2 1 -1 -1 4 0 ] ]
+ [ (rmqr) (R17x139) vR17x139 17 139 28 56 1860 [ 99 80 99 156 ] [ -1 -1 4 0 -1 -1 2 4 ] ]
+ ] def
+ /eclval (LMQH) eclevel search pop length exch pop exch pop def
+ 0 1 metrics length 1 sub {
+ /i exch def
+ /m metrics i get def
+ /frmt m 0 get def % Format of the symbol
+ /vers m 1 get def % Version of symbol
+ /vergrp m 2 get def % Version group
+ /verind i 44 sub def % Version indicator for rMQR format info
+ /rows m 3 get def % Length of side
+ /cols m 4 get def % Length of side
+ /asp2 m 5 get def % Position of second alignment symbol
+ /asp3 m 6 get def % Position of third alignment symbol
+ /nmod m 7 get def % Number of modules
+ /ncws nmod 8 idiv def % Total number of codewords
+ /rbit nmod 8 mod def % Number of remainder bits
+ /lc4b false def % Last data codeword is 4 bits long
+ vers (M1) eq vers (M3) eq or { % Adjustments for M1 and M3 symbols
+ /ncws ncws 1 add def
+ /rbit 0 def
+ /lc4b true def
+ } if
+ /ecws m 8 get eclval get def % Number of error correction codewords
+ /dcws ncws ecws sub def % Number of data codewords
+ /dmod dcws 8 mul lc4b {4} {0} ifelse sub def % Number of data modules
+ /ecb1 m 9 get eclval 2 mul get def % First error correction blocks
+ /ecb2 m 9 get eclval 2 mul 1 add get def % Second error correction blocks
+ /okay true def
+ format frmt ne {/okay false def} if % The format must match that supplied
+ frmt (micro) eq fnc1first and {/okay false def} if % FNC1 mode is only available in full and rmqr
+ version (unset) ne version vers ne and {/okay false def} if % The version must match that supplied
+ ecb1 -1 eq ecb2 -1 eq or {/okay false def} if % Error correction level must be valid
+ /verbits msgbits vergrp get def
+ verbits -1 eq { % Bitstream must be available
+ /okay false def
+ } {
+ verbits length dmod gt {/okay false def} if % and fit into data modules
+ } ifelse
+ /term (000000000) 0 termlens vergrp get getinterval def
+ okay {exit} if
+ } for
+
+ okay not {
+ /bwipp.qrcodeNoValidSymbol (No valid symbol available) //raiseerror exec
+ } if
+
+ /format frmt def
+ /version vers def
+ /msgbits verbits def
+ /dcpb dcws ecb1 ecb2 add idiv def % Base data codewords per block
+ /ecpb ncws ecb1 ecb2 add idiv dcpb sub def % Error correction codewords per block
+
+ % Complete the message bits by adding the terminator, truncated if neccessary
+ /term term 0 dmod msgbits length sub term length 2 copy gt {exch} if pop getinterval def
+ msgbits length term length add string
+ dup 0 msgbits putinterval
+ dup msgbits length term putinterval
+ /msgbits exch def
+
+ % Expand the message bits by adding padding as necessary
+ /pad dmod string def
+ 0 1 pad length 1 sub {pad exch 48 put} for
+ pad 0 msgbits putinterval
+ /padstrs [ (11101100) (00010001) ] def
+ /padnum 0 def
+ msgbits length 8 div ceiling 8 mul cvi 8 dmod lc4b {5} {1} ifelse sub {
+ pad exch padstrs padnum get putinterval
+ /padnum padnum 1 add 2 mod def
+ } for
+
+ % Evaluate the padded message into codewords
+ /cws dcws array def
+ 0 1 cws length 1 sub {
+ /c exch def
+ /bpcw 8 def
+ lc4b c cws length 1 sub eq and {/bpcw 4 def} if
+ /cwb pad c 8 mul bpcw getinterval def
+ /cw 0 def
+ 0 1 bpcw 1 sub {
+ /i exch def
+ /cw cw 2 bpcw i sub 1 sub exp cvi cwb i get 48 sub mul add def
+ } for
+ cws c cw put
+ } for
+
+ % Short final data byte in M1 and M3 symbols has high-order value
+ lc4b {cws cws length 1 sub 2 copy get 4 bitshift put} if
+
+ % Calculate the log and anti-log tables
+ /rsalog [ 1 255 { dup 2 mul dup 256 ge {285 xor} if } repeat ] def
+ /rslog 256 array def
+ 1 1 255 {dup rsalog exch get exch rslog 3 1 roll put} for
+
+ % Function to calculate the product in the field
+ /rsprod {
+ 2 copy 0 ne exch 0 ne and {
+ rslog exch get exch rslog exch get add 255 mod rsalog exch get
+ } {
+ pop pop 0
+ } ifelse
+ } bind def
+
+ % Generate the coefficients for the Reed-Solomon algorithm
+ /coeffs [ 1 ecpb {0} repeat ] def
+ 0 1 ecpb 1 sub {
+ /i exch def
+ coeffs i 1 add coeffs i get put
+ i -1 1 {
+ /j exch def
+ coeffs j coeffs j 1 sub get coeffs j get rsalog i get rsprod xor put
+ } for
+ coeffs 0 coeffs 0 get rsalog i get rsprod put
+ } for
+ /coeffs coeffs 0 coeffs length 1 sub getinterval def
+
+ % Reed-Solomon algorithm to derive the error correction codewords
+ /rscodes {
+ /rscws exch def
+ /rsnd rscws length def
+ /rscws [ rscws {} forall ecpb {0} repeat ] def
+ 0 1 rsnd 1 sub {
+ /m exch def
+ /k rscws m get def
+ 0 1 ecpb 1 sub {
+ /j exch def
+ rscws m j add 1 add coeffs ecpb j sub 1 sub get k rsprod rscws m j add 1 add get xor put
+ } for
+ } for
+ rscws rsnd ecpb getinterval
+ } bind def
+
+ % Divide codewords into two groups of blocks and calculate the error correction codewords
+ /dcwsb ecb1 ecb2 add array def
+ /ecwsb ecb1 ecb2 add array def
+ 0 1 ecb1 1 sub { % First group of blocks has smaller number of data codewords
+ /i exch def
+ dcwsb i cws i dcpb mul dcpb getinterval put
+ ecwsb i dcwsb i get rscodes put
+ } for
+ 0 1 ecb2 1 sub { % Second group of blocks has larger number of data codewords
+ /i exch def
+ dcwsb ecb1 i add cws ecb1 dcpb mul i dcpb 1 add mul add dcpb 1 add getinterval put
+ ecwsb ecb1 i add dcwsb ecb1 i add get rscodes put
+ } for
+
+ % Reassemble the codewords
+ /cws ncws array def
+ /cw 0 def
+ 0 1 dcpb { % Interleave the data codeword blocks
+ /i exch def
+ 0 1 ecb1 ecb2 add 1 sub {
+ /j exch def
+ i dcwsb j get length lt { % Ignore the end of short blocks
+ cws cw dcwsb j get i get put
+ /cw cw 1 add def
+ } if
+ } for
+ } for
+ 0 1 ecpb 1 sub { % Interleave the error codeword blocks
+ /i exch def
+ 0 1 ecb1 ecb2 add 1 sub {
+ /j exch def
+ cws cw ecwsb j get i get put
+ /cw cw 1 add def
+ } for
+ } for
+
+ % Extend codewords by one if there are remainder bits
+ rbit 0 gt {
+ /pad cws length 1 add array def
+ pad 0 cws putinterval
+ pad pad length 1 sub 0 put
+ /cws pad def
+ } if
+
+ % Fixups for the short final data byte in M1 and M3 symbols
+ lc4b {
+ cws dcws 1 sub 2 copy get -4 bitshift put
+ dcws 1 sub 1 ncws 2 sub {
+ /i exch def
+ cws i cws i get 15 and 4 bitshift put
+ cws i cws i 1 add get -4 bitshift 15 and cws i get or put
+ } for
+ cws ncws 1 sub cws ncws 1 sub get 15 and 4 bitshift put
+ } if
+
+ % Create the bitmap
+ /pixs [ rows cols mul {-1} repeat ] def
+ /qmv {cols mul add} bind def
+
+ % Timing patterns
+ format (full) eq {
+ 8 1 cols 9 sub {
+ /i exch def
+ pixs i 6 qmv i 1 add 2 mod put
+ pixs 6 i qmv i 1 add 2 mod put
+ } for
+ } if
+ format (micro) eq {
+ 8 1 cols 1 sub {
+ /i exch def
+ pixs i 0 qmv i 1 add 2 mod put
+ pixs 0 i qmv i 1 add 2 mod put
+ } for
+ } if
+ format (rmqr) eq {
+ 3 1 cols 4 sub { % Along top and bottom
+ /i exch def
+ pixs i 0 qmv i 1 add 2 mod put
+ pixs i rows 1 sub qmv i 1 add 2 mod put
+ } for
+ 3 1 rows 4 sub { % Along left and right
+ /i exch def
+ pixs 0 i qmv i 1 add 2 mod put
+ pixs cols 1 sub i qmv i 1 add 2 mod put
+ } for
+ asp2 1 sub asp3 asp2 sub cols 13 sub { % Down interior
+ /i exch def
+ 3 1 rows 4 sub {
+ /j exch def
+ pixs i j qmv j 1 add 2 mod put
+ } for
+ } for
+ } if
+
+ % Finder patterns
+ /fpat [
+ [ 1 1 1 1 1 1 1 0 ]
+ [ 1 0 0 0 0 0 1 0 ]
+ [ 1 0 1 1 1 0 1 0 ]
+ [ 1 0 1 1 1 0 1 0 ]
+ [ 1 0 1 1 1 0 1 0 ]
+ [ 1 0 0 0 0 0 1 0 ]
+ [ 1 1 1 1 1 1 1 0 ]
+ [ 0 0 0 0 0 0 0 0 ]
+ ] def
+ /fsubpat [
+ [ 1 1 1 1 1 9 9 9 ]
+ [ 1 0 0 0 1 9 9 9 ]
+ [ 1 0 1 0 1 9 9 9 ]
+ [ 1 0 0 0 1 9 9 9 ]
+ [ 1 1 1 1 1 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ ] def
+ /fcorpat [
+ [ 1 1 1 9 9 9 9 9 ]
+ [ 1 0 9 9 9 9 9 9 ]
+ [ 1 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ ] def
+ /fnullpat [
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ [ 9 9 9 9 9 9 9 9 ]
+ ] def
+ /fpats <<
+ % TL TR BL BR
+ (full) [ fpat fpat fpat fnullpat ]
+ (micro) [ fpat fnullpat fnullpat fnullpat ]
+ (rmqr) [ fpat fcorpat fcorpat fsubpat ]
+ >> format get def
+ 0 1 7 {
+ /y exch def
+ 0 1 7 {
+ /x exch def
+ /fpb0 fpats 0 get y get x get def
+ /fpb1 fpats 1 get y get x get def
+ /fpb2 fpats 2 get y get x get def
+ /fpb3 fpats 3 get y get x get def
+ fpb0 9 ne y rows lt and {pixs x y qmv fpb0 put} if
+ fpb1 9 ne {pixs cols x sub 1 sub y qmv fpb1 put} if
+ fpb2 9 ne {pixs x rows y sub 1 sub qmv fpb2 put} if
+ fpb3 9 ne {pixs cols x sub 1 sub rows y sub 1 sub qmv fpb3 put} if
+ } for
+ } for
+
+ % Alignment patterns
+ /putalgnpat {
+ /py exch def
+ /px exch def
+ 0 1 4 {
+ /pb exch def
+ 0 1 4 {
+ /pa exch def
+ /algnb algnpat pb get pa get def
+ algnb 9 ne {
+ pixs px pa add py pb add qmv algnb put
+ } if
+ } for
+ } for
+ } bind def
+ format (full) eq {
+ /algnpat [
+ [ 1 1 1 1 1 ]
+ [ 1 0 0 0 1 ]
+ [ 1 0 1 0 1 ]
+ [ 1 0 0 0 1 ]
+ [ 1 1 1 1 1 ]
+ ] def
+ asp2 2 sub asp3 asp2 sub cols 13 sub {
+ /i exch def
+ i 4 putalgnpat
+ 4 i putalgnpat
+ } for
+ asp2 2 sub asp3 asp2 sub cols 9 sub {
+ /x exch def
+ asp2 2 sub asp3 asp2 sub rows 9 sub {
+ /y exch def
+ x y putalgnpat
+ } for
+ } for
+ } if
+ format (rmqr) eq {
+ /algnpat [
+ [ 1 1 1 9 9 ]
+ [ 1 0 1 9 9 ]
+ [ 1 1 1 9 9 ]
+ [ 9 9 9 9 9 ]
+ [ 9 9 9 9 9 ]
+ ] def
+ asp2 2 sub asp3 asp2 sub cols 13 sub {
+ /i exch def
+ i 0 putalgnpat
+ i rows 3 sub putalgnpat
+ } for
+ } if
+
+ % Format information modules
+ /formatmap <<
+ (full) [
+ [ [ 0 8 ] [ 8 cols 1 sub ] ] [ [ 1 8 ] [ 8 cols 2 sub ] ] [ [ 2 8 ] [ 8 cols 3 sub ] ]
+ [ [ 3 8 ] [ 8 cols 4 sub ] ] [ [ 4 8 ] [ 8 cols 5 sub ] ] [ [ 5 8 ] [ 8 cols 6 sub ] ]
+ [ [ 7 8 ] [ 8 cols 7 sub ] ] [ [ 8 8 ] [ cols 8 sub 8 ] ] [ [ 8 7 ] [ cols 7 sub 8 ] ]
+ [ [ 8 5 ] [ cols 6 sub 8 ] ] [ [ 8 4 ] [ cols 5 sub 8 ] ] [ [ 8 3 ] [ cols 4 sub 8 ] ]
+ [ [ 8 2 ] [ cols 3 sub 8 ] ] [ [ 8 1 ] [ cols 2 sub 8 ] ] [ [ 8 0 ] [ cols 1 sub 8 ] ]
+ ]
+ (micro) [
+ [ [ 1 8 ] ] [ [ 2 8 ] ] [ [ 3 8 ] ] [ [ 4 8 ] ] [ [ 5 8 ] ]
+ [ [ 6 8 ] ] [ [ 7 8 ] ] [ [ 8 8 ] ] [ [ 8 7 ] ] [ [ 8 6 ] ]
+ [ [ 8 5 ] ] [ [ 8 4 ] ] [ [ 8 3 ] ] [ [ 8 2 ] ] [ [ 8 1 ] ]
+ ]
+ (rmqr) [
+ [ [ 11 3 ] [ cols 3 sub rows 6 sub ] ] [ [ 11 2 ] [ cols 4 sub rows 6 sub ] ] [ [ 11 1 ] [ cols 5 sub rows 6 sub ] ]
+ [ [ 10 5 ] [ cols 6 sub rows 2 sub ] ] [ [ 10 4 ] [ cols 6 sub rows 3 sub ] ] [ [ 10 3 ] [ cols 6 sub rows 4 sub ] ]
+ [ [ 10 2 ] [ cols 6 sub rows 5 sub ] ] [ [ 10 1 ] [ cols 6 sub rows 6 sub ] ] [ [ 9 5 ] [ cols 7 sub rows 2 sub ] ]
+ [ [ 9 4 ] [ cols 7 sub rows 3 sub ] ] [ [ 9 3 ] [ cols 7 sub rows 4 sub ] ] [ [ 9 2 ] [ cols 7 sub rows 5 sub ] ]
+ [ [ 9 1 ] [ cols 7 sub rows 6 sub ] ] [ [ 8 5 ] [ cols 8 sub rows 2 sub ] ] [ [ 8 4 ] [ cols 8 sub rows 3 sub ] ]
+ [ [ 8 3 ] [ cols 8 sub rows 4 sub ] ] [ [ 8 2 ] [ cols 8 sub rows 5 sub ] ] [ [ 8 1 ] [ cols 8 sub rows 6 sub ] ]
+ ]
+ >> format get def
+ formatmap {
+ { {} forall qmv pixs exch 1 put } forall
+ } forall
+
+ % Version information modules
+ format (full) eq cols 45 ge and {
+ /versionmap [
+ [ [ cols 9 sub 5 ] [ 5 cols 9 sub ] ] [ [ cols 10 sub 5 ] [ 5 cols 10 sub ] ]
+ [ [ cols 11 sub 5 ] [ 5 cols 11 sub ] ] [ [ cols 9 sub 4 ] [ 4 cols 9 sub ] ]
+ [ [ cols 10 sub 4 ] [ 4 cols 10 sub ] ] [ [ cols 11 sub 4 ] [ 4 cols 11 sub ] ]
+ [ [ cols 9 sub 3 ] [ 3 cols 9 sub ] ] [ [ cols 10 sub 3 ] [ 3 cols 10 sub ] ]
+ [ [ cols 11 sub 3 ] [ 3 cols 11 sub ] ] [ [ cols 9 sub 2 ] [ 2 cols 9 sub ] ]
+ [ [ cols 10 sub 2 ] [ 2 cols 10 sub ] ] [ [ cols 11 sub 2 ] [ 2 cols 11 sub ] ]
+ [ [ cols 9 sub 1 ] [ 1 cols 9 sub ] ] [ [ cols 10 sub 1 ] [ 1 cols 10 sub ] ]
+ [ [ cols 11 sub 1 ] [ 1 cols 11 sub ] ] [ [ cols 9 sub 0 ] [ 0 cols 9 sub ] ]
+ [ [ cols 10 sub 0 ] [ 0 cols 10 sub ] ] [ [ cols 11 sub 0 ] [ 0 cols 11 sub ] ]
+ ] def
+ } {
+ /versionmap [] def
+ } ifelse
+ versionmap {
+ { {} forall qmv pixs exch 0 put } forall
+ } forall
+
+ % Reserve the solitary dark module in full symbols
+ format (full) eq {
+ pixs 8 rows 8 sub qmv 0 put
+ } if
+
+ % Calculate the mask patterns
+ /maskfuncs <<
+ (full) [
+ {add 2 mod}
+ {exch pop 2 mod}
+ {pop 3 mod}
+ {add 3 mod}
+ {2 idiv exch 3 idiv add 2 mod}
+ {mul dup 2 mod exch 3 mod add}
+ {mul dup 2 mod exch 3 mod add 2 mod}
+ {2 copy mul 3 mod 3 1 roll add 2 mod add 2 mod}
+ ]
+ (micro) [
+ {exch pop 2 mod}
+ {2 idiv exch 3 idiv add 2 mod}
+ {mul dup 2 mod exch 3 mod add 2 mod}
+ {2 copy mul 3 mod 3 1 roll add 2 mod add 2 mod}
+ ]
+ (rmqr) [
+ {2 idiv exch 3 idiv add 2 mod}
+ ]
+ >> format get def
+ mask -1 ne { % User specifies a mask
+ /maskfuncs [maskfuncs mask 1 sub get] def
+ /bestmaskval mask 1 sub def
+ } if
+ /masks maskfuncs length array def
+ 0 1 masks length 1 sub {
+ /m exch def
+ /mask rows cols mul array def
+ 0 1 rows 1 sub {
+ /j exch def
+ 0 1 cols 1 sub {
+ /i exch def
+ i j maskfuncs m get exec 0 eq
+ pixs i j qmv get -1 eq and {1} {0} ifelse
+ mask i j qmv 3 -1 roll put
+ } for
+ } for
+ masks m mask put
+ } for
+
+ % Walk the symbol placing the bitstream
+ /posx cols format (rmqr) ne {1} {2} ifelse sub def
+ /posy rows 1 sub def
+ /dir -1 def % -1 is upwards, 1 is downwards
+ /col 1 def % 0 is left bit, 1 is right bit
+ /num 0 def
+ { % loop
+ posx 0 lt {exit} if
+ pixs posx posy qmv get -1 eq {
+ cws num 8 idiv get 7 num 8 mod sub neg bitshift 1 and
+ pixs posx posy qmv 3 -1 roll put
+ /num num 1 add def
+ } if
+ col 1 eq {
+ /col 0 def
+ /posx posx 1 sub def
+ } {
+ /col 1 def
+ /posx posx 1 add def
+ /posy posy dir add def
+ posy 0 lt posy rows ge or { % Turn around at top and bottom
+ /dir dir -1 mul def
+ /posy posy dir add def
+ /posx posx 2 sub def
+ % Hop over the timing pattern in full size symbols
+ format (full) eq posx 6 eq and {/posx posx 1 sub def} if
+ } if
+ } ifelse
+ } loop
+
+ % Evaluate runlength encoded rows or columns in full symbols
+ /evalfulln1n3 {
+ /scrle exch def
+ % Detect runs of 5 or more like modules
+ /scr1 0 scrle { dup 5 ge {add 2 sub dup} if pop } forall def
+ % Detect 1:1:3:1:1 ratio next to 4 modules of whitespace
+ /scr3 0 def
+ 3 2 scrle length 3 sub { % Scan odd (dark) runs within bounds
+ /j exch def
+ scrle j get 3 mod 0 eq { % Multiple of 3 black modules
+ /fact scrle j get 3 idiv def
+ scrle j 2 sub 5 getinterval {fact eq} forall and exch pop and and {
+ j 3 eq j 4 add scrle length ge or { % At either extent of run
+ /scr3 scr3 40 add def
+ } { % Bounded by dark modules
+ scrle j 3 sub get 4 ge scrle j 3 add get 4 ge or {
+ /scr3 scr3 40 add def
+ } if
+ } ifelse
+ } if
+ } if
+ } for
+ scr1 scr3
+ } bind def
+
+ % Evaluation algorithm for full symbols
+ /evalfull {
+ /sym exch def
+
+ /n1 0 def /n2 0 def /n3 0 def
+ /rle cols 1 add array def
+ /lastpairs cols array def
+ /thispairs cols array def
+ /colsadd1 cols 1 add def
+ 0 1 cols 1 sub {
+ /i exch def
+
+ % Runlength encode (light, dark, light, ...) and evaluate each column
+ mark 0 0
+ i cols dup dup mul 1 sub {
+ sym exch get exch 1 index eq {exch 1 add exch} {1 exch} ifelse
+ } for
+ pop
+ rle 0 counttomark 2 sub getinterval astore
+ evalfulln1n3 n3 add /n3 exch def n1 add /n1 exch def
+ pop
+
+ % Runlength encode (light, dark, light, ...) and evaluate each row
+ /symrow sym i cols mul cols getinterval def
+ mark 0 0
+ symrow {
+ exch 1 index eq {exch 1 add exch} {1 exch} ifelse
+ } forall
+ pop
+ rle 0 counttomark 2 sub getinterval astore
+ evalfulln1n3 n3 add /n3 exch def n1 add /n1 exch def
+ pop
+
+ % Count and score same coloured blocks
+ /lastpairs thispairs /thispairs lastpairs def def
+ symrow 0 get 1 eq {0} {1} ifelse
+ symrow {exch 1 index add exch} forall
+ pop
+ thispairs astore pop
+ i 0 gt {
+ mark
+ lastpairs aload pop thispairs aload pop
+ n2 cols { exch colsadd1 index add 3 and 0 eq {3 add} if } repeat
+ /n2 exch def
+ cleartomark
+ } if
+
+ } for
+
+ % Score dark/light imbalance
+ /dark 0 sym {add} forall def
+ /n4 dark 100 mul cols dup mul div 50 sub abs 5 div cvi 10 mul def
+
+ n1 n2 add n3 add n4 add
+ } bind def
+
+ % Evaluation algorithm for micro symbols
+ /evalmicro {
+ /sym exch def
+ /dkrhs 0 def /dkbot 0 def
+ 1 1 cols 1 sub {
+ /i exch def
+ /dkrhs dkrhs sym cols 1 sub i qmv get add def
+ /dkbot dkbot sym i cols 1 sub qmv get add def
+ } for
+ dkrhs dkbot le {
+ dkrhs 16 mul dkbot add neg
+ } {
+ dkbot 16 mul dkrhs add neg
+ } ifelse
+ } bind def
+
+ % Evaluate the masked symbols to find the most suitable
+ /bestscore 999999999 def
+ 0 1 masks length 1 sub {
+ /m exch def
+ /masksym rows cols mul array def
+ 0 1 rows cols mul 1 sub {
+ /i exch def
+ masksym i pixs i get masks m get i get xor put
+ } for
+ masks length 1 ne { % Not rMQR nor user-specified mask
+ format (full) eq {
+ masksym evalfull /score exch def
+ } {
+ masksym evalmicro /score exch def
+ } ifelse
+ score bestscore lt {
+ /bestsym masksym def
+ /bestmaskval m def
+ /bestscore score def
+ } if
+ } {
+ /bestsym masksym def
+ } ifelse
+ } for
+ /pixs bestsym def
+
+ % Set the solitary dark module in full symbols
+ format (full) eq {
+ pixs 8 cols 8 sub qmv 1 put
+ } if
+
+ % Add the format information
+ format (full) eq {
+ /fmtvals [
+ 16#5412 16#5125 16#5e7c 16#5b4b 16#45f9 16#40ce 16#4f97 16#4aa0
+ 16#77c4 16#72f3 16#7daa 16#789d 16#662f 16#6318 16#6c41 16#6976
+ 16#1689 16#13be 16#1ce7 16#19d0 16#0762 16#0255 16#0d0c 16#083b
+ 16#355f 16#3068 16#3f31 16#3a06 16#24b4 16#2183 16#2eda 16#2bed
+ ] def
+ /ecid (MLHQ) eclevel search pop length exch pop exch pop def
+ /fmtval fmtvals ecid 3 bitshift bestmaskval add get def
+ 0 1 formatmap length 1 sub {
+ /i exch def
+ formatmap i get {
+ pixs exch aload pop qmv fmtval 14 i sub neg bitshift 1 and put
+ } forall
+ } for
+ } if
+ format (micro) eq {
+ /fmtvals [
+ 16#4445 16#4172 16#4e2b 16#4b1c 16#55ae 16#5099 16#5fc0 16#5af7
+ 16#6793 16#62a4 16#6dfd 16#68ca 16#7678 16#734f 16#7c16 16#7921
+ 16#06de 16#03e9 16#0cb0 16#0987 16#1735 16#1202 16#1d5b 16#186c
+ 16#2508 16#203f 16#2f66 16#2a51 16#34e3 16#31d4 16#3e8d 16#3bba
+ ] def
+ /symid [ [0] [1 2] [3 4] [5 6 7] ] cols 11 sub 2 idiv get eclval get def
+ /fmtval fmtvals symid 2 bitshift bestmaskval add get def
+ 0 1 formatmap length 1 sub {
+ /i exch def
+ pixs formatmap i get 0 get aload pop qmv fmtval 14 i sub neg bitshift 1 and put
+ } for
+ } if
+ format (rmqr) eq {
+ /fmtvals1 [
+ 16#1fab2 16#1e597 16#1dbdd 16#1c4f8 16#1b86c 16#1a749 16#19903 16#18626
+ 16#17f0e 16#1602b 16#15e61 16#14144 16#13dd0 16#122f5 16#11cbf 16#1039a
+ 16#0f1ca 16#0eeef 16#0d0a5 16#0cf80 16#0b314 16#0ac31 16#0927b 16#08d5e
+ 16#07476 16#06b53 16#05519 16#04a3c 16#036a8 16#0298d 16#017c7 16#008e2
+ 16#3f367 16#3ec42 16#3d208 16#3cd2d 16#3b1b9 16#3ae9c 16#390d6 16#38ff3
+ 16#376db 16#369fe 16#357b4 16#34891 16#33405 16#32b20 16#3156a 16#30a4f
+ 16#2f81f 16#2e73a 16#2d970 16#2c655 16#2bac1 16#2a5e4 16#29bae 16#2848b
+ 16#27da3 16#26286 16#25ccc 16#243e9 16#23f7d 16#22058 16#21e12 16#20137
+ ] def
+ /fmtvals2 [
+ 16#20a7b 16#2155e 16#22b14 16#23431 16#248a5 16#25780 16#269ca 16#276ef
+ 16#28fc7 16#290e2 16#2aea8 16#2b18d 16#2cd19 16#2d23c 16#2ec76 16#2f353
+ 16#30103 16#31e26 16#3206c 16#33f49 16#343dd 16#35cf8 16#362b2 16#37d97
+ 16#384bf 16#39b9a 16#3a5d0 16#3baf5 16#3c661 16#3d944 16#3e70e 16#3f82b
+ 16#003ae 16#01c8b 16#022c1 16#03de4 16#04170 16#05e55 16#0601f 16#07f3a
+ 16#08612 16#09937 16#0a77d 16#0b858 16#0c4cc 16#0dbe9 16#0e5a3 16#0fa86
+ 16#108d6 16#117f3 16#129b9 16#1369c 16#14a08 16#1552d 16#16b67 16#17442
+ 16#18d6a 16#1924f 16#1ac05 16#1b320 16#1cfb4 16#1d091 16#1eedb 16#1f1fe
+ ] def
+ /fmtvalu (MH) eclevel search pop length exch pop exch pop 5 bitshift verind add def
+ /fmtval1 fmtvals1 fmtvalu get def
+ /fmtval2 fmtvals2 fmtvalu get def
+ 0 1 formatmap length 1 sub {
+ /i exch def
+ pixs formatmap i get 0 get aload pop qmv fmtval1 17 i sub neg bitshift 1 and put
+ pixs formatmap i get 1 get aload pop qmv fmtval2 17 i sub neg bitshift 1 and put
+ } for
+ } if
+
+ % Add the version information
+ format (full) eq cols 45 ge and {
+ /vervals [
+ 16#07c94 16#085bc 16#09a99 16#0a4d3 16#0bbf6 16#0c762 16#0d847
+ 16#0e60d 16#0f928 16#10b78 16#1145d 16#12a17 16#13532 16#149a6
+ 16#15683 16#168c9 16#177ec 16#18ec4 16#191e1 16#1afab 16#1b08e
+ 16#1cc1a 16#1d33f 16#1ed75 16#1f250 16#209d5 16#216fd 16#228ba
+ 16#2379f 16#24b0b 16#2542e 16#26a64 16#27541 16#28c69
+ ] def
+ /verval vervals cols 17 sub 4 idiv 7 sub get def
+ 0 1 versionmap length 1 sub {
+ /i exch def
+ versionmap i get {
+ pixs exch {} forall qmv verval 17 i sub neg bitshift 1 and put
+ } forall
+ } for
+ } if
+
+ % Return the arguments
+ <<
+ /ren //renmatrix
+ /pixs pixs
+ /pixx cols
+ /pixy rows
+ /height rows 2 mul 72 div
+ /width cols 2 mul 72 div
+ /opt options
+ >>
+
+ dontdraw not //renmatrix if
+
+ end
+
+}
+[/barcode] {null def} forall
+bind def
+/qrcode dup load /uk.co.terryburton.bwipp defineresource pop
+end
+/setpacking where {pop setpacking} if
+%%EndData
+%%EndResource
+
+%%BeginResource: uk.co.terryburton.bwipp swissqrcode 0.0 2020040100 57786 57647
+%%BeginData: 126 ASCII Lines
+/setpacking where {pop currentpacking true setpacking} if
+1 dict
+dup /raiseerror dup /uk.co.terryburton.bwipp findresource put
+dup /renmatrix dup /uk.co.terryburton.bwipp findresource put
+dup /qrcode dup /uk.co.terryburton.bwipp findresource put
+begin
+/swissqrcode {
+
+ 20 dict begin % Confine variables to local scope
+
+ /options exch def % We are given an option string
+ /barcode exch def % We are given a barcode string
+
+ /dontdraw false def
+
+ /parse false def
+
+ % Parse the input options
+ options type /stringtype eq {
+ 1 dict begin
+ options {
+ token false eq {exit} if dup length string cvs (=) search
+ true eq {cvlit exch pop exch def} {cvlit true def} ifelse
+ } loop
+ currentdict end /options exch def
+ } if
+ options {def} forall
+
+ % Parse ordinals of the form ^NNN to ASCII
+ parse {
+ /msg barcode length string def
+ /j 0 def
+ barcode
+ { % loop
+ (^) search {
+ dup msg exch j exch putinterval
+ length j add 1 add /j exch def
+ pop
+ dup 0 3 getinterval cvi msg exch j 1 sub exch put
+ dup length 3 sub 3 exch getinterval
+ } {
+ dup msg exch j exch putinterval
+ length j add /j exch def
+ /barcode msg 0 j getinterval def
+ exit
+ } ifelse
+ } loop
+ } if
+
+ /barlen barcode length def
+
+ % Validate the input length
+ barcode length 997 gt {
+ /bwipp.swissqrcodeBadLength (Swiss QR Code input must not exceed 997 digits) //raiseerror exec
+ } if
+
+ % Get the result of encoding with qrcode
+ options (dontdraw) true put
+ /args barcode options //qrcode exec def
+
+ args (opt) options put
+ args
+
+ % The 7mm-wide Swiss Cross is defined by the specification as being an
+ % overlaid image, i.e. not made out of "modules", so very likely a
+ % different pitch. It cannot therefore be represented by our standard image
+ % dictionary and would be a nightmare to gridfit. The application assumes a
+ % sufficient high-resolution print process that such issues do not matter.
+ %
+ % So for now we simply do as we're told and paint over the top of the
+ % barcode image that has been scaled to 46mm, user be damned!
+ %
+ dontdraw not {
+
+ gsave
+ currentpoint translate
+ 72 25.4 div dup scale % pt to mm
+
+ % Clipping path with 7mm hole for the Swiss Cross
+ gsave
+ newpath
+ 0 0 moveto
+ 46 0 lineto
+ 46 46 lineto
+ 0 46 lineto
+ closepath
+ 19.5 19.5 moveto
+ 19.5 26.5 lineto
+ 26.5 26.5 lineto
+ 26.5 19.5 lineto
+ closepath
+ clip
+
+ % Scale the QR Code to fit within 46mm
+ gsave
+ 0 0 moveto
+ 46 args (pixx) get div 2 div dup scale
+ //renmatrix exec
+ grestore
+
+ grestore % Clipping
+
+ % Draw Swiss Cross
+ 19.5 dup translate
+ 7 83 div dup scale
+
+ newpath
+ 6 6 moveto
+ 6 77 lineto
+ 77 77 lineto
+ 77 6 lineto
+ closepath
+ 49 18 moveto
+ 49 34 lineto
+ 65 34 lineto
+ 65 49 lineto
+ 49 49 lineto
+ 49 65 lineto
+ 34 65 lineto
+ 34 49 lineto
+ 18 49 lineto
+ 18 34 lineto
+ 34 34 lineto
+ 34 18 lineto
+ closepath
+ 0 0 0 setrgbcolor fill
+
+ grestore
+
+ } if
+
+ end
+
+}
+[/barcode] {null def} forall
+bind def
+/swissqrcode dup load /uk.co.terryburton.bwipp defineresource pop
+end
+/setpacking where {pop setpacking} if
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+1 1 translate
+2 2 scale
+0 0 moveto
+(SPC
+0200
+1
+CH5800791123000889012
+S
+Robert Schneider AG
+Rue du Lac
+1268
+2501
+Biel
+CH
+
+
+
+
+
+
+
+199.95
+CHF
+K
+Pia-Maria Rutschmann-Schnyder
+Grosse Marktgasse 28
+9400 Rorschach
+
+
+CH
+SCOR
+RF18539007547034
+
+EPD)
+<>
+/swissqrcode /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/images/ultracode-1.eps b/graphics/pstricks/contrib/pst-barcode/doc/images/ultracode-1.eps
new file mode 100644
index 0000000000..cfaff5b792
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-barcode/doc/images/ultracode-1.eps
@@ -0,0 +1,230 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 0 0 82 54
+%%Creator: Online Barcode Generator 2017-07-10. https://the-burtons.xyz/barcode-generator/
+%%CreationDate: 2017-10-14 21:44:02
+%%Pages: 1
+%%LanguageLevel: 2
+%%DocumentData: Clean7Bit
+%%EndComments
+%%BeginProlog
+%%BeginResource: Category uk.co.terryburton.bwipp 0.0 2017071000 30005 33214
+%%BeginData: 7 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+P1OerF_-`n01TSk ATDKp 010/i AS5q% H' 6mE 30Ia, !KmJH2
+3Ji?3%mj@F*(i.@ qAV bE+L\ DATVm "@ r#d rB9 KiQP
+'&Es@:O(aA79M!@ <ls?E +O HE04A mA@< ls ?E+ OH\<K _S[ F_`U> D_?-
+CEcQG7F`MSBDD#C BBlJ$ S4t f93 FCf* 'E d8d <AS,Xo AT D@'Dfp )1A
+Wh2!hZ~>
+% Category/uk.co.terryburton.bwipp 0.0 2017071000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp raiseerror 0.0 2017071000 153916 40223
+%%BeginData: 9 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23JD %Ea`[ 'A S#n &Df U1I,
+\;":DfV")04f0ED fTQ0A oE hrP'A 6`Ec Q) =P! 1O1Ec Q)= DIIBn P!5%
+R,\;":DfRL@Df'? "DIeo MP' A6` EcQ) =0 5b? FATDg0 EZ fIEF_- _\P
++mAf%[&V$Ea`['A S#n&D fV" #P% 6 4gC G'+ 8/p (ZFEd; ,: Ecc5;/ n0$
+=E,Zq1AS,XoATD@ 'Dfp) 1AW h2! 3A 5G bFD tYu CM@[!P .H "'F`V, 9E+
+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/raiseerror 0.0 2017071000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp renmatrix 0.0 2017071000 108697 107630
+%%BeginData: 87 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOp s'bAS u?n FE2)? H\`B
+!23JD%@<-"%P!5$ b06_, @FD -I2 Ou"b )A SGd jFGKs\ 1G <3GEas $(D
+fUjAF`)83FHSF5@ UWb^B 6%p 5DI d 6qC i=? S"a +^(ATX (k 04Sp:D fT]
+'E/k*EDKBB2Ou"b *DJO< 4Eb /Zi L] ES o05 5<> F)Z/2@ :X &-!0T, kBl
+7^-E,oMuA9Nb/Ou "b*D I[L *A 7] joG ]Y' ?@; L!rO
+u"b5G]Y'4+C1-d0 6CcM F CT 6* DfU jAF `)83 FHSF5
+FCf]=G[YE&B5W_5 F`)83F HSF 5 FCf ]= H!tN 'B5 W_5F`)83FH SF5FCf]=AoD
+R/NX%piF`M2-Efr 43FCf] =F( o r3L^ K;$0 6Cc MFEh_9AohO *L]ESo06CcM
+FEqe:AohO*L]ESo 06CcMF D#$ $F,0 gZ1G <0Q FED)=FH-?a 1LY<:F*j'+I
+?I0?E--Gi1OYEX0 6_,@F D)e@ Bk2=! OtVt S05 +p2B4uB0BO tmjBQTCjOu"
+b#@<,jrCi=>:@UX :eDes ?4OtD hQ04J @"C M.[+F`(`"D es?4+C\bhCM
+.[+F`(`"Des?4Ot DhQ055< >F)Z/2 @:UKp DJO <4Eb/ZiOtV tS055<>F)Z/
+2@:X$oBl7^-E,oMuA8%,ZOu"b*DJO<4Eb/ZiFs(L:CNFH8ART+mOtVtS06CcMFCT6*DfQtBAU&
+<,Des?4OtDhQ06CcMFEh51BkM<+FCf]=G[YE&B5WkaOu"b5AU&<B@;KXjDBO%4G]\4>Ch[O"Ot
+DhQ06CcMFCoH/F<G[:G][P9DKM$nOu"b5AU&<<BmO>5FCf]=F(or3OtVtS06CcMFEh_9AohO*+
+EV1>FEh_9AohO*OtVtS06CcMFEqe:AohO*+EV1>FEqe:AohO*OtVtS06CcMFD#$$F!,R9G][S,
+E-%0qOu"b"Cijc1G]Y':Cijc1G]]*#Ou$fiCNFH8ART,*!0V2G055<>F)Z/2@:X$oBl7^-E,oM
+uA<J`sP#Q.5CNFH8ART,*!0V2G055<>F)Z/2@:XO(Bl7^-E,oMuA<J`sP#O)ZH"U]1HQ[9AG^,
+BfOo]N9G]T$3P"U4d%[&V$G^4"@G%G]9HQ[9AG^,BfOo]N9G]T$3L]W_WP"UT3P/3<+I?G)'1G
+<TiH"U]1HQ[9AG^,BfOo]E_5*AQp!KmS6Oq*X205YrZF(KH?+E2%>G`lm+!H!u`L]`J5P)#3FI
+?G)'1G<TdATVC"Eb&a%HQ[9AG^,BfOo]E_5)99')3RXK!g7SeG^Y_bOu"b.@W-9tATD^$ApYY>
+Bm=lcCm"g9P!4['Or9EUL]il]P'DD<%[&V$D/"'#DfTB"EdJpJBm=lcCm"g9P!5%%L^'"FL]W`
+&I?G)'1G<TTCh7$qHQ[9AG^,BfOo]E_5)99')3RXK!KmSKG^Y_bOu"b.@r,^bE\r-!!g4F<@r,
+^bEejd[)2J<V!Gu=_ARTV8!g4Fa5)96&!KoW`@r,^bEejd[)3R1>!KmJH5&FeGARTV8!KmJH5)
+96&!KoW`@r,^bEda)\Ou"b5Ea`HhHS9Z-5*@]TG`k7R1G<9QEZfU_!KmJ/L]NY>D0U>=ATX(k0
+5,K@+Co2,Ou"b4GT_6o1G<fp+F0,+06:Z<EZen,Efr4q@<--+>9J/5Gp$C>+F&\COo]hNG_cB`
+!I9J%Oo]eMH&)Ka!I,`4L^7O*Eejd[Cm&\!LG)&@P!5$b01:&J5*@]T6m+mB+@LJtG^3q5FHSF
+56[=hYOu"aYG`k7R1G;*<6[0_@Gp%?WB4Z1J1G;(?P!5$b01'oH5*@]T66JU>+@:>rG^3q5FHS
+F56$\VWOu"aWG`k7R1G;$:6$OM<Gp%?WB4Z1J1I3-MP!+.X+@D;THS8'@HS89FP#ZpW5p/OX4[
+L8ZP!+s2HU3GfP!*K$B8?PN4d*X.02d4F01LAQ<IK3I7X^G"I?ITn3%maa4aW?7A8-(?!0TKl0
+6eUaL]NY>Ou%NL<+K]`L]NZ%HS9XeH&)Ka!Ko6eP#Pt+Eejd[4aSi,+F&\CP,XU#I?IQ?Bl]"3
+P!+.FGp%Bg!KsFF1OYEcBQ[sD!0TKl6$OM<Gp$sFATVC"Eb&a%I=!)'GT]=u+Dl12FCK0/A7]e
+0P#ZpW02.NlHS8oDEZen,Eejg\!JglAC6CAdF_?L2P!+.YGT]=u+Dl12FCK0/A7]d(7!KhBGp$
+s5DfTB"Ec5Q%I?IQXHS8oDEZen,EejaZ!JglAC6CAdF_?L1P!+.XGT]:t+Dl12FCK0/A7]d(6[
+0_@Gp$s5DfTB"Ec5Q%I?IQXP#Y^/GT_8S?%%l9GT_'PP!+(5F*Wp3Op#<0EZfF6Bl]A"Op$,p5
+^eepI?J0))j1Mj$^*]:FY@t^G_cB`!Ko5lGp%Bg!KmJH1G<hmGT_8SD0U>=ATW_/P/3;;D..I#
++F##SH]f>(!0TKlP!FGY<%iN[5*@]TG`k7R1O($f+Dl@KB4Z0-FHUKfL]D[U!KsF<s+gZ%OuR_
+0D/"'#DfTB"EdNs5P')pQI?IQmFa]EDE+sQAL]N[<G_cB`!JgbqBm=lY!KsF/OuR_0D/"'#DfT
+B"EdNs5P')pQI?IQmFa]EDL]NZ&HS9)r5*@^9+F,)HBlda%Eb&a%P&Pbi+DDsD+Dl@KF(KG9Bc
+q[DG^4"@G%G]9I?IQD+F/bDP,W;CH"U]1+EWc`Bcq\W!KsF!Blda%Eb&a%P&QQeHYFUJL]N[<I
+?IQD+F/bDOo]EEH"U]1+EWc`Bcq\W!KmJ#Blda%Eb&a%P&QQeHYFUJL]NY>I?IQXP":"a<.0p@
+P')pIL]ET2Oogeh06o:85*@]TGVP@FOu&7\OuSV6L]N[<L]NZ&P"^4c!g7[ZGqtOHOu"b916Oh
+a1O(YtGVP@XH[%9$!dHJV!KsF/GqgFY@r,^bE\r3-8:?Y#GqpLf0p5@[Gqk*VGqt0VP,WeQ0p4
+_;@r,^bE\r3-8:?Y#GVUCd0p6-qGVP$RGVY'UOo]oT0d(=CCh7$q1jtNXI?IQT1*CisP%K&d0o
+5gS15Gso!IK&GP!3_mCh7$q1jtNXI?IP_GVL=c16OFHGqgFe16OGAP"CfrP%'4JP,X6;P!5%&I
+?G)'1G<f\FCB'4@rH1%EdKHJDL#`1Ci=?W5*@^1DL#`1Ci=?W@Yb5O4aW1p4<Pah+<VdjL^90?
+Or9EBL]Lq%H"1c/DfV"dOtr1bH\MP#Ou@`O8WoWmP#Pk-H"1c/DfV"ML^9/,H]AFq+<VdL+<Vd
+L5)9Q/V32^Z3/@TDDL#`1Ci=?WH'0qG5C8+bs,o9gP"Ch#I?IQXOq*X204]*3GAL]5ATE,NE+s
+Q<DfTQ)+E2%>F-8=4E+sQ<P!5$b05tWMF!+[0E+sQAL]W_?H\_ZMP(SPjE+sQA+E2%>F-:!g!K
+sF/L]ET%E+sQ<P!3i!G^,BFOogehL]Djd88r9fG_cEa!IKV&I?K4gOu"b1Bm=kFE+sQAL]W_?O
+u"b1Bm=nGE+sQBL]W_?Ou"b.+Bot-Bm=]^@XEn2I?K4gOu"b1@<?1(+BsX%L]MI/G^5)GP,Wd]
+C6CcD1Pc$e!H;atG_cB`WI$:4P!5$bBcq.5G^3q5FGKs\4aUn!!KsEsL]N[<FE1f"AUT_@I?I-
+LP"8lA1G<]]G^(?MBm=lY!g9OG1G<]]G^1ENBm=oZ!g9OG1QlZq@<?1(HS9?$5*@]TCh7K,E0=
+[n1N4IQAT!;)P,XU;OogehE/4LW99K@>Fbg$R!Gl=bL]N[<HS9)r5*@^@+DHW4Oo]B1DN\at99
+K@>Fbg6XrfW%m"d2u%DJO<4Eb/ZiBSZeS=GR*9s,r/#Ap][AI=%-VI?ITd"Gd)ALPQ(r=D;YgF
+)Z/2@:XP;"HllC"Gm)@LQYJ\Oo]uXP,Wkm<JUd6s,r/#5&b4\H'1@SWG..gP!+/TCOLPm@ssM?
+I?I-a(6Wg'Fcpm1Fa]EEP!Ug@Bm=\AE+sQ<DfTQ)Ou%NL%[&W2:+p=!CNFH8ART+_+DG_/F)Z/
+2@:X&-!g5I)1G<H[CNFH8ART+m+DG_/F)Z/2@:XP;!g5I)1Qj/LX`nJiFD)e9Bm=lc2ManeChR
+BoB4uB0E+sQBOuA+eP&-;>L]E52P&##NG^,#EP%/HFG^(?MBm=od@u(,(Bm=odA!.U:@:O(cEc
+6)<A7KOoDfUjAF`)83FHUKfP"oIp@r#^tDfor.@rH1%EZfF7FCB'4@rH1%EfrbP9mr1(@rH1%E
+c#6(NWjQCF(KHV4aShlDes?4D..B+4?SE#@UX:eDes?4+?huP1OYEc@rH1%Ec#6(HQ[B@FCB'4
+@rH1%E\D3>H'1@S1Ktu@Bm=]G+DYP6P!+/J!I]<N!.C#1I?I0-+CoM$GAL]5ATE3^8T\NgFCT6
+*DfUjAF`)83FHUKfFCf]=@rH1%EZfF7FCB'4@rH1%Eda*MBl7EsF_#'*AU&<D+EV1>FEh51BkM
+=D"a+^(ATX(uFCf]=H!tN'B5W_5F`)83FHSeM"CZ+gFCf]=NW>5*Op$+bF,0gZ1G<?XNW>4uFE
+hnSH[V&KL]W_WF-:C'5%\\qD3ApdL]W_W06<:?Ou"b'DN[2H1QmcHH]iN7Fa]EQP&$5RI?I0MH
+ZWhDFCoH/F<G[:G]\"@H=`8"@;L%-AU&<W!0TKl06DG\+Bot1G]\:g!0U!%I?I0MP"ArB1G<ik
+FE/LGG]]*XP,4<tL]E53FEhnj@Yb&JWI'dfFEhnj5*AQ\F*)GY",Hu@LQZn1P":"J06D8WEZee
+,FED)=FHSG.P#ZUFFE3ORL]ET$H\_ZMH]h-eDhnCL!0V,X!AJ+oCia0N&X%3k"Gd)ALQZeCFcp
+m19p-VP:gn'UFB!O)AWgGJOruDS@;0V$<-`FoP"UT4P!+5?AmoLsAUT_AOruDVFE2;8AQNSVFD
+-hFOp$,p+>6Z8Ec5`)=(u2eBTc#E!g5Ht!0TO/+>63&DKJT]FE2)?P"UrsOuSV@P!5$gP&-9^F
+)c5BOo]uo<.0p006CcMFCB6#ASuUQ5*@]TFCf]=GA1T0BHVD<FE3PAP'(kfFE3ORL]N[<FCf]=
+B45b#P&-9^Ou"b5AU&<AE,Te?FCf]=G].2+F(KG9GT_*>G]\.DA9;LJWJCV=2Ne*(1N[2QFEh5
+1BkM=D"DhX]FHSe606CcMFEhbCF!,R9G]\1KAnH*qFHSG.P#QO7G]\1=Ch[O"NWjH;B4uCM4aS
+i(AU&<AE,Te?GT_*>G]\1KAnH*qFHWVFAU&<@Bk2=!P,XU#I?IQOAU&<A@;KXjDN4s?AnGjjAo
+s2!HS9JPG]\1LDf[%CAU&<@Bk2=!+EV1>FEh_9AohO*Oo^_`Ou%NL<-2\rFEh51BkM=D#]F<eE
+bT0"FHSe606CcMFEhbCF!,]MFCf]=G].2+F(KHV!Ko6eP#QO7G]\1=Ch[O"NX'<AF*),.H'1=4
+AU&<@Bk2=!+F'&]Op$+bFCf]=G]7SBL]ESo06CcMFD#$$F!,]MFCf]=GA1T0BTf?:F*)Gc@Yb&
+JWKK0&1OYEc06CcMFEqhDF!,R9G]\4LAnH*qF<G[:G][A8@qBP"Oo^@>Oo^_`Ou%2kG]\4>Ch[
+O"NWij#Dg#]T4aSi(AU&<BE,Te?FCf]=H#I;,F(KG9E+sQBOo^@>Oo^_%I?IQOAU&<B@;KXjDN
+4p2ASuU$EfrS406CcMFEqhDF!,R9G]\4LAnH*qF<GO:G^1ERAU&<*F(8d!FHWVZ!g5I)!Ko6eP
+#QO7G]\1LDf[%CAU&<BE,Tf\CNO-4FD#$$F,0g<F*)Gc$@S(;I?IQm9p.MbOq*X2061WAD..O,
+Bm>e#P%64gCG'+8/p(ZFEd;,:Ecc5;/n0$=E,Zq1AS,XoATD@'Dfp)1AWh2!3A5GbFDtYuCM@[
+!P.H"'F`V,9E+*6lBl7R3P#M~>
+% uk.co.terryburton.bwipp/renmatrix 0.0 2017071000
+%%EndData
+%%EndResource
+%%BeginResource: uk.co.terryburton.bwipp ultracode 0.0 2017071000 98628 101468
+%%BeginData: 89 ASCII Lines
+currentfile /ASCII85Decode filter cvx exec
+06:]HE+*6lBl7RH \pKT_ @s)g4 ASuU/ @: O(e DJ()6 Eckq9F
+(KH4@:O(eDJ+B\< /:R <23Kp PEa`[ 'A S#n &Df V"#0
+6M%_@rEuAATDg:@ Wc^5D f. 1:GA2 #8P1 l( DOu P+8AS u?n FE2)? OuP+
+;CG'+8/p(ZFEd;, :Ecc5 ;/n 0$= E,^u oP 'E- !06M)Q Ea `HrA7^ +D'
+Tt>:%52X=FD5Z2F -8_M1 G<3 GEa s #uA Wf6 ?1G <9WDKK E0 @<Wi+@ ;L!
+rOu"b&@r,_"ASdA /77/h n1G <]U Ec Ye 7Am oLs AWei&E +* d.AS,g i+D
+,%uF(LLjDfBf4Df 0WZY :js =E bT E(F Eqh :P! +/J!
+Ko='%<$3-Bl@m1H ]kFA @ ;L !r P!+ /T5 ^eep OuSV6
+P,4<rNWD;+NHB2` AWf3'O tDh \ P') pO Ou%N 5Ot CcrF_-^lI? ITYP%BdtOuY
+16E-,f4DKCt)Ou% NL<,Z_ tBl @ m1H] g15P "BV $EcYf=05Yc C+C\c"@rGmh
+P%'TNOu"b+L]ESo @UX:eD e*F +NWE ILNI -gJ D0'?Q5&-6E P'N4"C6AUR!
+KmI:C6CcD1QlmD3 /@Qj" -Q?@ /8]H@ P!3W :!K sFF5*C/R30 Ia,"-TX>"-P
+j29RV8N3,N_LP!3 WD5*C 2S@VV &,05? Y6O u"b#@<,jrA 7Zm#F(^:/C6
+D8R1Qk"OP#ZpnAU T_@04J@ 1Ch7K, @UX:e De* FB@ZiN#Ao9 >Zs,o/kAo9D
+\rfT&jAo;+%@;L!-4?SW,7SZ<*Ao9>`"@c-R1M1M\+?huP1G<TdB-:YlEbo<)OpR:-0564BOu"
+b+L]ESoHYFU3@<-0qDN[/0P!FGY<%h`p@<*K"@<,jrA7ZltP"UroE+*d.AS,gi+Cf(nEen%b4d
+#q^+C\c"Ch7L?"HoaIAs*:D@UX:eDe*E%BnueQ!Kp*3?BT/P04S[(EZet3@s29sF!+q#Eas#uA
+KY]C!KmJ>"HlHA99M(aBcq,G"HieK1OXU'Bcq,G!KmJH1OYEdI?IQHF(ZV1+Cf(nEftZ#Bcq,G
+!KmJH1G<JcC5;nR!Ko6eP%?:`F(ZV4F(^:/C6D8R1G<TdB5D-s+Dl14P%'S106;5DEcd$:!Ko5
+lF(955>9I471G<QYDJLt_!0T,kF(9/3>9I471G<9KGB4m2+EM%5OogehF(90P!g7\CF(]i_3+d
+ %_P!+/TFbTo*I?IQm3+d%aP!+/TFbTo+I?IQXP"ArB1G<TT@j#;lGB8pVL]`e@Ou"b&@r-<sC
+`m;!Ch7d$Ckr.U98G9bWKK&K@r-<sCkr(SD0mpU@q-WcL]E53L]WA8L^&Y@>p*]gCj'6'P"TY%
+@u)"c;JfoRL`)@jL]ETTH\_]c!I^,1P&,pXOo^_%I=!Ve@q1;sOu%NL<A.cj@j#c$@u(5MWJF;
+cBl7]@P&-9^Ou"b5@q-Wu@q-X$@q1Z&Ou"b.ATVs,@ribs+BsX'L]iMXL]q',>DNB;+c'$P%:(
+)\L]iN3L&dg$(L8.fL]rM5L5#^IL`ThE?'7""!/LZ3"+)\8P!5$b05VhKATVs,@ric,P"Uro06
+1uTF!,=U!0U!<1G<TZDIXf+L]NZ3Ou"b.@<c9)D287V99M(aD.@L#+Dlo:P"Uro05kW7Gp%3LF
+_-^lFCSf'D/!ltP%JfG@j#VsG[ln5P&bn&Deid,+D,%uF(LLjI?IQJCLML8P!FGY<.0p#Deid,
+P&Pb$@WuO*E%Z9LFE1f"De*ESDcU:_Bk1.fD.7F"NYtT1+Eh10Bk/?-H#7#/C`m/0@;0Od@VfU
+/061K8F(Jp'Ec5u]5CJ\oD.@L#L]N;pHS8lICisT4F-8_M1Lk?>F_u#;+Cf>+F_u#;L_#Y@H\_
+]cWI9q/@rH1+D/OEN+-K6CL]N[<I?IQ>DesQ5DKCUeP"L(W!KsF1P#QI?GB8p`L]`g>FCSgDWK
+K5s!0Ts$05t?1F-8_M1Qk"OP#RTeI?I,SA7K*l@rH1+D/OD;D.@L#P,XU#062,TAT8hs+EMX5E
+c`F@@q-Wi@q-X&@rd_6P'(;FGB8oKP'(bS@sa"3I?K5=!*taD062,BCi<r/>DN<7!?-<J3/@["
+Ck_s0P%oE.K3aWr062,MDeFe*)j1Mj1Pc'f!JUUnH]g@/F(&m'B9GHA99MJZF)5c-L]`G6P)#3
+FI?I,SEcZ2?De+3N!g4FW!0V2^5)93%D3>$KEcZ&8B9GHA99MJZF)5c-P!5%%Oo^:<)NniUF(&
+m'B9GHA97;/MFcpm'!.C#1I?G)'1G<VgD.@(=1G<MdEFWLA1G<6VAS,Oq+BsX&CO:j;I?K4gOu
+ %mpL]M:<056S5Ou$TdAS,Oq+DDs.De3NmF!,1Q!KsFF99OO6L]N[<M#W83HS9,s5*@^3De3Nm
+F!,3?@rGpjAof)0L]N[<P"T;'AS,Oq+DR'4EcYZ*DeC2,P"Th:E,ol-Oo^:<)j4s!G^Y`G@rGp
+jAoib.@rGpjAoib.P"Th:@;Kjp+DI!3EcZ2?De,#UI?I,S@rGpjAof))De3NmF,0g+De3NmF-:
+!g!KsFF9Th2ADe3NmF-:!g!KsF<reLQ$@rGpjAoj,!L]W_WP"UN1)j3CJWKMLSP":B/L]MCL!K
+sF/06E@@EcZ;5EKWMK96,)pAT8i1P"Ur=L&i6VC6CB/!/LYkL]N[<HS9,s5*@^BF)to4+Dr<:O
+o]TEF(K>6DBN\W!Jgc>!Kp*1!?6,'@rGpjAof)1+DR(=L]N[<P"UsSL&i6VC6GQZ!JUUoP%p/)
+I?I-LP"9JH!H'#qOo]om3-'(]AT<ksL&i66F)to4L]rV7P)#2nP,X0:)j4s!G^Y`G04eX;F!,L
+EF(K>6DBN_X9Th1bA7K+l+BsL!!6Cpg!!(,VKE)"o`In3kc_6!l!7.^!!!(CQKE)#"4+mS6d;=
+O:!7@'b!!(bVKE)#,@tXg^g\HL&!8J`N!!(e)KE)#-_1Vdgh"-1!!6B88!!(*1KE)"o:kSfKae
+4:e!7.Ho!!(CTKE)#"+G9^pd;Xa=!7?IQ!!(E6KE)#,8;$sCgK]C3!8IF)!!(e"KE)#-`.S*jg
+t5nq1G<9K@r*8lKE)#@Vh>$Mn$.NG!:X3G!!)M6KE)#A^OuRenC*$j!;;n8!!)_rKE)#G\V'q_
+pa_!t!;K-=!!)eTKE)#OCP2ZfreZ:.!<5QB!!*(,L3e&uH@^ft.u&CBL3nu9H_Z5o!/Wdj!!%j
+OKE)"/=bHbTMBRWQ!/iL`!!%pEKE)"3,D6$sNAlLj!0.#3!!&%c?'6usFD5Q&F!+\A1J``]:kg
+c7L,3@p1M__$D2'mhL,@).1sC\2gP.QBL,@hC2#2k_qh?s+L,CQ;2(s\A0SVGLL,D>Q2+30V;h
+d/0L,E(f4!02=+GMs4L-%JO4$A<[d=sa3L-*n>484Ikq1_!/L-,Kk49L=#"bo/<L-5Kj4TL4"%
+u*4\L-66*4X5\E-&+Q2L-Got57!!.)2:?qL-Hu=5IlM5]7rP_L-ORM5N.>]jG#n`L-P!Y5OF1j
+JVHFBL-UEH5a-pfQ\IbmL-W"u5dQ21[>'!+L3cgRH?Y*iI"lruL3eQ.HPqQb)hr\ZL3kG*HS:,
+#0SXpGL3lRJHVK6AI>3)uL3nu9H]s22P_OO[L3obOH`2St!/Wdj!!%j?KE)"/5_K+;M,/d)!/X
+R+!!%jTKE)"/=bHbTM-GW5!/Y!7!!%lIKE)"/oRm2EMALpG!/_bL!!%m"KE)"0-%l6uM]IHN!/
+hqP!!%p"KE)"108'<*M_g"d!/i[e!!%pEKE)"17>(X@Mb&L$!0&4V!!&!+KE)"3."hR#NAlLj!
+0'!l!!&!@KE)"36\GF>NCAL#!0,`d!!&#6KE)"3s+C@PNWb"8!0.A=!!&#gKE)"4TnECGNh_7-
+!03k.!!&%cKE)"4[tF_]Njs`B!05H[!!&&.KE)"4eV!o&aDlk5!6B57!!()^KE)"nQ\5>=aI.\
+]!6C[`!!(*6KE)"nUP&UIaJFOi!6I6S!!(,'KE)"o98!9Fa\[Wj!6Jr.!!(,VKE)"oSV-tCae+
+4d!6Lme!!(-EKE)"oZ\/;Yag?^$!6N-3!!(-[KE)"oaFjNnc\mGV!7-^Z!!(?,KE)"uT7d1Ec_
+6!l!7.Ho!!(?EKE)"uX+UHQc`Mj#!7;++!!(CTKE)#")h\1kd3+)B!7<f[!!(D.KE)#"D1hlhd
+;O[<!7>b=!!(DrKE)#"K7j4)d=d/Q!7@!`!!(E3KE)#"R"PG>gI$Vo!8C"s!!(bEKE)#,=+gPR
+gKB10!8Cb3!!(b^KE)#,@tXg^gLZ$<!8I=&!!(dNKE)#,r.G%Mg`M1L!8J`N!!(e"KE)#-.>.[
+$gae$X!8K/Z!!(fjKE)#-`.S*jgs^oV!8Q4[!!(gEKE)#-o7R)Dmt$,l!:PPn!!)J@KE)#@Vh>
+$Mn#:s?!:R"B!!)JmKE)#@Z\/;Yn$RfK!:WR5!!)L]KE)#A9S<BGn6:PG!:X?K!!)LrKE)#AH%
+Z.tn9]fg!:YDi!!)MlKE)#A^OuRenABnZ!:\Hj!!)N=KE)#GRtLbAp7I!<!;<(=!!)_rKE)#GZ
+ %N)Wp9]JQ!;<sV!!)`)KE)#G]n?@cp_e_b!;ILd!!)d6KE)#I.tdm&pb.:#!;J7$!!)dcKE)#
+I98!9Fpe?DA!;Ltq!!)eDKE)#IO+[K5plg@2!;N=B!!)ejKE)#OCP2ZfrbmGi!<-qj!!*"JKE)
+#OJV4"'re,q)!<.h.!!*"VKE)#ONJ%93rum$q!<49s!!*$EKE)#P7t^jBs%.kD!<5`G!!*$rKE
+)#P;hP,Ns&F^P!<>iI!!*'qKE)#Q?\AC[!+UZ^!<@1o!!*(BKE)#-on3;FaZEdk1G<ceGB4mID
+g-8Y#*NeY!KmJH1G<6VCisT4F!+t2CisT4F,1$`!Ko5lE+sQ<+Bot/Dg-7F@rH1+D/OEXCjV!<
+I?K4gOu"b2D0C7K@rH1+D/OEXCm"gIOq*X2L]E53@rH1+D/OEN!KsF/056S5Ou%moL^%m<GB8Q
+@P,Wd]C6CcD1MMXKP"L(?Bm=\ABcq.5EG]kABnuhRC5<1ZCm'$kP#Qjm88r9fF!,1Q!-)k!L^B
+5hE+sQ<+DDs=Dg-8Y!KsF%D0C^AP'DD<8;I;&!HN+&F,0m\WI$:4P!5$bL]`GE@rH1+D/OEN!K
+sF/05?Y6Ou%&kG]P!B+DDs<D0C^9BnuhRC6GQP$'K+fG^Y`GE+sQ<L]D-3EG]lT$'KOPBm=]T!
+GNZrD0C^9BnuhRC6GQP$'K+fG]7AAF,0m3+E;7AL]ET_E+sQ<L]_?6EG]lT$'KOPBm=]T"DJuu
+D0C^8P'Cq[G]P!;DesQ5DKCU7P,W.<EG]lT$'KO]P"76?+EDCEF,0m\;MYL>WKK&A+CntlFWb4
+)A!0K@$A\kKV33NZLbP!kI?I0X!+]SLC`m7uA!0K@$A\kKV33NZLbP!kI?I0-HQ[9AG]SZBBcq
+D4G)-6Vs,r/#GV<bRBnueQ!Ko6eP"@<KBl%@%AT8hs+EMX5Ec`F@@q-Wm@s<!W!g7\J@q15o)e
+!5d+EM%5OogehA7Kh)OogehE+*9uH\MP@I?K5&@q-WeOu"b9L]rqt06r?SOu%2oCh7[!EI/gMB
+l%@%P!5%%L^JqAP,4<qHZ3\DF!,]MGp%*DG)-6Vs,r.n0TrDuGV==bH&)Ka!Ko6eP"BpAEc6/C
+L]N[<P&5P!Gp%Bg!KmJH1OXU'GT_6e!KmJH1G=$0!Ko6XBm=\AGT_8SEG]l^98NV2D0mp\+F&\
+COo^_%I?IQXP#Zpn8N]*gEb0,A061WAD..O,Bm;:MBm=\AE+sQ<05tWMGT^L7CisT4F"_KHG^1
+EPDg-7UBOtmjBQPA;Dg-8Y8<PkaGA1T0BHUf'CisT4F,3AM2D8QYCi=?2@;m>O4GWut#V[qd0J
+G170Sg$q#V[qd0JG1M7Yh)*#Y%9;0JG170Sfgk#V[r%7PHMM0Sfmm#V[qd0LeMc0Sfpn#WG4,0
+LeMc0KqZRDfBe@DfBf4Df0V=5!C*"Df0Z-Eaa0TE%`kbASu?nFE2)?P#RT)I?G)'1G<leFE1f"
+De*FB30If*F_`U>D_?-CEcQG7F`MSBDD#CBBlJ#6A7]@eDImj"F)Q2A@qCgGOuY1:ATVm"@r#d
+rB9KiQP'(hWFDtYuCM@[!I?IP~>
+% uk.co.terryburton.bwipp/ultracode 0.0 2017071000
+%%EndData
+%%EndResource
+%%EndProlog
+%%Page: 1 1
+gsave
+1 1 translate
+4 4 scale
+0 0 moveto
+<4e69636520636f6c6f75727321>
+<65636c6576656c3d454333>
+/ultracode /uk.co.terryburton.bwipp findresource exec
+grestore
+showpage
+%%Trailer
+%%EOF
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.ltx b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.ltx
index fc72994578..09146c2824 100644
--- a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.ltx
+++ b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.ltx
@@ -1,12 +1,17 @@
-%% $Id: pst-barcode-doc.ltx 445 2017-04-19 11:13:52Z herbert $
-\documentclass[11pt,english,BCOR=10mm,DIV=14,bibliography=totoc,parskip=false,headings=small,
- headinclude=false,footinclude=false,twoside]{pst-doc}
-\usepackage[utf8]{inputenc}
+%% $Id: pst-barcode-doc.ltx 588 2022-08-23 16:49:51Z herbert $
+\RequirePackage{pdfmanagement-testphase}
+\DeclareDocumentMetadata{}
+
+\documentclass[11pt,english,bibliography=totoc,parskip=false,headings=small,
+ headinclude=false,footinclude=false,twoside,usegeometry]{pst-doc}
\usepackage{pst-barcode,blindtext,multicol}
\usepackage{biblatex}
+\makeatletter
+\def\blx@err@patch#1{}
+\makeatother
\addbibresource{\jobname.bib}
-\geometry{inner=2cm,outer=4cm,marginparwidth=3cm,marginparsep=2mm}
+\geometry{inner=2cm,outer=3cm,marginparwidth=2.5cm,marginparsep=2mm}
\let\pstBarcodeFV\fileversion
\lstset{preset=\centering,pos=l,wide=false,vsep=5mm,language=PSTricks,%width=0.5\linewidth,
@@ -25,7 +30,7 @@
\psbarcode{Herbert Voss Freie Universitaet Berlin}{rows=52 columns=52}{datamatrix}
\end{pspicture}}
-\begin{filecontents*}{demo.tex}
+\begin{filecontents*}[force]{demo.tex}
\documentclass{article}
\usepackage{pst-barcode,fancyvrb}
\begin{document}
@@ -46,10 +51,10 @@
\title{\texttt{pst-barcode}}
\subtitle{A PSTricks package for drawing barcodes; v.\pstBarcodeFV}
-\author{Terry Burton \\Herbert Vo\ss}
+\author{Terry Burton \\Herbert Voß}
%\docauthor{Herbert Vo\ss}
\date{\today}
-\maketitle
+\settitle
\tableofcontents
@@ -161,7 +166,6 @@ The contents of the external file \texttt{demo.tex}:
\VerbatimInput{demo.tex}
-
\newpage
\subsection{Examples for the PostScript options}
@@ -303,7 +307,7 @@ bar
\end{compactitem}
\endgroup
-\clearpage
+%\clearpage
@@ -316,8 +320,9 @@ bar
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%\clearpage
%\newgeometry{inner=2cm,outer=4cm,marginparwidth=3cm,marginparsep=2mm}
-
+%\textwidth=\dimexpr\textwidth-1cm\relax
\section{QR code in the margin}
The marginnotes are placed with the help of the macro of the same name \Lcs{marginnote},
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.pdf b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.pdf
index 65587e9135..7762c1e4f5 100644
--- a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.pdf
+++ b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.tex b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.tex
index 8388528281..6c9d4dd877 100644
--- a/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.tex
+++ b/graphics/pstricks/contrib/pst-barcode/doc/pst-barcode-doc.tex
@@ -1,9 +1,11 @@
-%% $Id: pst-barcode-doc.tex 445 2017-04-19 11:13:52Z herbert $
-\section{Symbology Reference}\label{symbology-reference}
+\hypertarget{symbology-reference}{%
+\section{Symbology Reference}\label{symbology-reference}}
-\subsection{Point of Sale}\label{point-of-sale}
+\hypertarget{point-of-sale}{%
+\subsection{Point of Sale}\label{point-of-sale}}
-\hypertarget{ean-13}{\subsubsection{EAN-13}\label{ean-13}}
+\hypertarget{ean-13}{%
+\subsubsection{EAN-13}\label{ean-13}}
\textbf{EAN-13} is an extension of the \protect\hyperlink{upc-a}{UPC-A}
barcode symbology that usually carries a GTIN-13. It was designed by the
@@ -11,7 +13,8 @@ International Article Numbering Association in 1976 for identification
of retail goods at point of sale outside of the US.
Also known as: EAN, UCC-13, European Article Number, International
-Article Number, JAN, JAN-13.
+Article Number, JAN, JAN-13, IAN, WPC, SAAN, UCCET, ABAC, BCCI, ICA,
+MANA, KANC, ANA, ANC.
Variants:
@@ -47,7 +50,8 @@ Variants:
Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options}
+\hypertarget{data-and-options}{%
+\paragraph{Data and Options}\label{data-and-options}}
\begin{itemize}
\tightlist
@@ -58,8 +62,8 @@ Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
add-on is required.
\item
If twelve digits of primary data are supplied then the check digit is
- calculated automatically. Otherwise the provided check digit must be
- correct.
+ calculated automatically. Otherwise the provided check digit will be
+ verified.
\item
The \textbf{includetext} option should normally be supplied.
\item
@@ -67,7 +71,8 @@ Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
guard marks.
\end{itemize}
-\paragraph{Examples}\label{examples}
+\hypertarget{examples}{%
+\paragraph{Examples}\label{examples}}
Identical symbols, input provided with and without a check digit:
@@ -95,7 +100,8 @@ Encoder: ean13
\includegraphics{images/ean13-2.eps}
-\hypertarget{ean-8}{\subsubsection{EAN-8}\label{ean-8}}
+\hypertarget{ean-8}{%
+\subsubsection{EAN-8}\label{ean-8}}
\textbf{EAN-8} is derived from the \protect\hyperlink{ean-13}{EAN-13}
barcode symbology and is designed for small packaging. It usually
@@ -127,7 +133,8 @@ Variants:
Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-1}
+\hypertarget{data-and-options-1}{%
+\paragraph{Data and Options}\label{data-and-options-1}}
\begin{itemize}
\tightlist
@@ -138,16 +145,17 @@ Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
add-on is required.
\item
If seven digits of primary data are supplied then the check digit is
- calculated automatically. Otherwise the provided check digit must be
- correct.
+ calculated automatically. Otherwise the provided check digit will be
+ verified.
\item
The \textbf{includetext} option should normally be supplied.
\item
- The \textbf{guardwhitespace} option enables the display of white space
+ The \textbf{guardwhitespace} option enables the display of whitespace
guard marks.
\end{itemize}
-\paragraph{Examples}\label{examples-1}
+\hypertarget{examples-1}{%
+\paragraph{Examples}\label{examples-1}}
Identical symbols, input provided with and without a check digit:
@@ -165,7 +173,7 @@ Encoder: ean8
\includegraphics{images/ean8-1.eps}
-Truncated with white space guards:
+Truncated with whitespace guards:
\begin{verbatim}
Data: 01335583
@@ -175,7 +183,8 @@ Encoder: ean8
\includegraphics{images/ean8-2.eps}
-\hypertarget{upc-a}{\subsubsection{UPC-A}\label{upc-a}}
+\hypertarget{upc-a}{%
+\subsubsection{UPC-A}\label{upc-a}}
The \textbf{UPC-A} barcode symbology is used for identification of
retail goods at point of sale inside of the US. It usually carries a
@@ -209,7 +218,8 @@ Variants:
Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-2}
+\hypertarget{data-and-options-2}{%
+\paragraph{Data and Options}\label{data-and-options-2}}
\begin{itemize}
\tightlist
@@ -224,13 +234,14 @@ Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
symbol.
\item
If eleven digits of primary data are supplied then the check digit is
- calculated automatically. Otherwise the provided check digit must be
- correct.
+ calculated automatically. Otherwise the provided check digit will be
+ verified.
\item
The \textbf{includetext} option should normally be supplied.
\end{itemize}
-\paragraph{Examples}\label{examples-2}
+\hypertarget{examples-2}{%
+\paragraph{Examples}\label{examples-2}}
Identical symbols, input provided with and without a check digit:
@@ -258,7 +269,8 @@ Encoder: upca
\includegraphics{images/upca-2.eps}
-\hypertarget{upc-e}{\subsubsection{UPC-E}\label{upc-e}}
+\hypertarget{upc-e}{%
+\subsubsection{UPC-E}\label{upc-e}}
\textbf{UPC-E} is a compacted form of the
\protect\hyperlink{upc-a}{UPC-A} barcode symbology that usually carries
@@ -289,7 +301,8 @@ Variants:
Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-3}
+\hypertarget{data-and-options-3}{%
+\paragraph{Data and Options}\label{data-and-options-3}}
\begin{itemize}
\tightlist
@@ -304,13 +317,14 @@ Standards: ISO/IEC 15420, BS EN 797, GS1 General Specifications.
symbol, provided that the input can be zero suppressed.
\item
If seven digits of primary data are supplied then the check digit is
- calculated automatically. Otherwise the provided check digit must be
- correct.
+ calculated automatically. Otherwise the provided check digit will be
+ verified.
\item
The \textbf{includetext} option should normally be supplied.
\end{itemize}
-\paragraph{Examples}\label{examples-3}
+\hypertarget{examples-3}{%
+\paragraph{Examples}\label{examples-3}}
Identical symbols, input provided with and without a check digit:
@@ -338,7 +352,8 @@ Encoder: upce
\includegraphics{images/upce-2.eps}
-\hypertarget{isbn}{\subsubsection{ISBN}\label{isbn}}
+\hypertarget{isbn}{%
+\subsubsection{ISBN}\label{isbn}}
An \textbf{ISBN} barcode is a variant of
\protect\hyperlink{ean-13}{EAN-13} that is used to identify books.
@@ -358,7 +373,8 @@ Variants:
Standards: ISO 2108, ISO/IEC 15420, BS EN 797, GS1 General
Specifications.
-\paragraph{Data and Options}\label{data-and-options-4}
+\hypertarget{data-and-options-4}{%
+\paragraph{Data and Options}\label{data-and-options-4}}
\begin{itemize}
\tightlist
@@ -371,11 +387,7 @@ Specifications.
be automatically upgraded to the ISBN-13 format.
\item
If the last digit of the primary data is not given then the ISBN check
- digit is calculated automatically.
-\item
- The \textbf{legacy} option prevents ISBN-10 input from being upgraded
- to ISBN-13 and will result in a symbol that is obsolete and should not
- be used at point of sale.
+ digit is calculated automatically, otherwise it will be verified.
\item
The primary data can optionally be followed by a space then two or
five digits if an \protect\hyperlink{ean-2}{EAN-2} or
@@ -383,7 +395,7 @@ Specifications.
\item
The \textbf{includetext} option should normally be supplied.
\item
- The \textbf{guardwhitespace} option enables the display of white space
+ The \textbf{guardwhitespace} option enables the display of whitespace
guard marks.
\item
The following options are also relevant to this barcode symbology:
@@ -391,7 +403,7 @@ Specifications.
\begin{itemize}
\tightlist
\item
- \textbf{isbntextfont}: Font name for text above symbol
+ \textbf{isbntextfont}: PostScript font name for text above symbol
\item
\textbf{isbntextsize}: Font size for the text above symbol, in
points
@@ -401,9 +413,14 @@ Specifications.
\item
\textbf{isbntextyoffset}: Vertical position of ISBN text, in points
\end{itemize}
+\item
+ \emph{Deprecated.} The \textbf{legacy} option prevents ISBN-10 input
+ from being upgraded to ISBN-13 and will result in a symbol that is
+ obsolete and should not be used at point of sale.
\end{itemize}
-\paragraph{Example ISBN}\label{example-isbn}
+\hypertarget{example-isbn}{%
+\paragraph{Example ISBN}\label{example-isbn}}
Identical symbols, input provided with and without an ISBN check digit:
@@ -448,7 +465,8 @@ Encoder: isbn
\includegraphics{images/isbn-3.eps}
-\paragraph{Example ISBN-10}\label{example-isbn-10}
+\hypertarget{example-isbn-10}{%
+\paragraph{Example ISBN-10}\label{example-isbn-10}}
Note that ISBN-10 is legacy format not for use at P.O.S.
@@ -468,7 +486,8 @@ Encoder: isbn
\includegraphics{images/isbn-4.eps}
-\hypertarget{ismn}{\subsubsection{ISMN}\label{ismn}}
+\hypertarget{ismn}{%
+\subsubsection{ISMN}\label{ismn}}
An \textbf{ISMN} barcode is a variant of
\protect\hyperlink{ean-13}{EAN-13} with a prefix \emph{979} that is used
@@ -487,7 +506,8 @@ Variants:
Standards: ISO 10957, ISO/IEC 15420, BS EN 797, GS1 General
Specifications.
-\paragraph{Data and Options}\label{data-and-options-5}
+\hypertarget{data-and-options-5}{%
+\paragraph{Data and Options}\label{data-and-options-5}}
\begin{itemize}
\tightlist
@@ -499,12 +519,8 @@ Specifications.
then eight or nine digits separated appropriately by dash characters
\emph{-}. This will be automatically upgraded to the ISMN-13 format.
\item
- The \textbf{legacy} option prevents ISMN-10 input from being upgraded
- to ISMN-13 and will result in a symbol that is obsolete and should not
- be used at point of sale.
-\item
If the last digit of the primary data is not given then the ISMN check
- digit is calculated automatically.
+ digit is calculated automatically, otherwise it will be verified.
\item
The primary data can optionally be followed by a space then two or
five digits if an \protect\hyperlink{ean-2}{EAN-2} or
@@ -512,7 +528,7 @@ Specifications.
\item
The \textbf{includetext} option should normally be supplied.
\item
- The \textbf{guardwhitespace} option enables the display of white space
+ The \textbf{guardwhitespace} option enables the display of whitespace
guard marks.
\item
The following options are also relevant to this barcode symbology:
@@ -520,7 +536,7 @@ Specifications.
\begin{itemize}
\tightlist
\item
- \textbf{ismntextfont}: Font name for text above symbol
+ \textbf{ismntextfont}: PostScript font name for text above symbol
\item
\textbf{ismntextsize}: Font size for the text above symbol, in
points
@@ -530,9 +546,14 @@ Specifications.
\item
\textbf{ismntextyoffset}: Vertical position of ISMN text, in points
\end{itemize}
+\item
+ \emph{Deprecated.} The \textbf{legacy} option prevents ISMN-10 input
+ from being upgraded to ISMN-13 and will result in a symbol that is
+ obsolete and should not be used at point of sale.
\end{itemize}
-\paragraph{Example ISMN}\label{example-ismn}
+\hypertarget{example-ismn}{%
+\paragraph{Example ISMN}\label{example-ismn}}
Identical symbols, input provided with and without an ISMN check digit:
@@ -567,7 +588,8 @@ Encoder: ismn
\includegraphics{images/ismn-2.eps}
-\paragraph{Example ISMN-10}\label{example-ismn-10}
+\hypertarget{example-ismn-10}{%
+\paragraph{Example ISMN-10}\label{example-ismn-10}}
Note that ISMN-10 is a legacy format not for use at P.O.S.
@@ -587,7 +609,8 @@ Encoder: ismn
\includegraphics{images/ismn-3.eps}
-\hypertarget{issn}{\subsubsection{ISSN}\label{issn}}
+\hypertarget{issn}{%
+\subsubsection{ISSN}\label{issn}}
An \textbf{ISSN} barcode is an \protect\hyperlink{ean-13}{EAN-13} with
prefix \emph{977} used to identify periodicals.
@@ -597,7 +620,8 @@ Also known as: International Standard Serial Number.
Standards: ISO 3297, ISO/IEC 15420, BS EN 797, GS1 General
Specifications.
-\paragraph{Data and Options}\label{data-and-options-6}
+\hypertarget{data-and-options-6}{%
+\paragraph{Data and Options}\label{data-and-options-6}}
\begin{itemize}
\tightlist
@@ -609,11 +633,11 @@ Specifications.
\protect\hyperlink{ean-5}{five-digit add-on} is required.
\item
If the last digit of the ISSN data is not given then the ISSN check
- digit is calculated automatically.
+ digit is calculated automatically, otherwise it will be verified.
\item
The \textbf{includetext} option should normally be supplied.
\item
- The \textbf{guardwhitespace} option enables the display of white space
+ The \textbf{guardwhitespace} option enables the display of whitespace
guard marks.
\item
The following options are also relevant to this barcode symbology:
@@ -621,7 +645,7 @@ Specifications.
\begin{itemize}
\tightlist
\item
- \textbf{issntextfont}: Font name for text above symbol
+ \textbf{issntextfont}: PostScript font name for text above symbol
\item
\textbf{issntextsize}: Font size for the text above symbol, in
points
@@ -637,7 +661,8 @@ A sequence variant is a two-digit number that usually starts at zero and
is incremented whenever the recommended retail price is amended, where
applicable.
-\paragraph{Example}\label{example}
+\hypertarget{example}{%
+\paragraph{Example}\label{example}}
Identical symbols, input provided with and without an ISSN check digit
and having sequence number \emph{00}:
@@ -674,9 +699,11 @@ Encoder: issn
\includegraphics{images/issn-2.eps}
-\subsection{Two-Dimensional}\label{two-dimensional}
+\hypertarget{two-dimensional}{%
+\subsection{Two-Dimensional}\label{two-dimensional}}
-\hypertarget{aztec-code}{\subsubsection{Aztec Code}\label{aztec-code}}
+\hypertarget{aztec-code}{%
+\subsubsection{Aztec Code}\label{aztec-code}}
\textbf{Aztec Code} is a 2D matrix-style barcode symbology. It can
encode full 256-character extended-ASCII.
@@ -692,17 +719,32 @@ Variants:
Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.
-\paragraph{Data and Options}\label{data-and-options-7}
+\hypertarget{data-and-options-7}{%
+\paragraph{Data and Options}\label{data-and-options-7}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
+\item
The \textbf{eclevel} option is used to specify the percentage of error
correction to be applied when expanding the data, by default
\texttt{23}.
@@ -721,20 +763,21 @@ Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.
default the encoder will choose the most appropriate format to create
a symbol of minimal size.
\item
- \emph{Deprecated: Use \protect\hyperlink{aztec-runes}{Aztec Runes}
- instead. The \textbf{format} option can also be used to create Aztec
- Code ``runes'', using \texttt{format=rune}. In this case the rune
- symbol number should be given in the data field.}
-\item
The \textbf{readerinit} option denotes that the symbol is used for
programming the barcode reader.
\item
The \textbf{raw} option denotes that the data field is providing the
input as a pre-encoded bitstream suitable for direct low-level
encoding.
+\item
+ \emph{Deprecated: Use \protect\hyperlink{aztec-runes}{Aztec Runes}
+ instead.} The \textbf{format} option can also be used to create Aztec
+ Code "runes", using \texttt{format=rune}. In this case the rune symbol
+ number should be given in the data field.
\end{itemize}
-\paragraph{Examples}\label{examples-4}
+\hypertarget{examples-4}{%
+\paragraph{Examples}\label{examples-4}}
\begin{verbatim}
Data: This is Aztec Code
@@ -776,8 +819,8 @@ Encoder: azteccode
\includegraphics{images/aztec-4.eps}
-\hypertarget{aztec-runes}{\subsubsection{Aztec
-Runes}\label{aztec-runes}}
+\hypertarget{aztec-runes}{%
+\subsubsection{Aztec Runes}\label{aztec-runes}}
\textbf{Aztec Runes} are a set of small barcode symbols that are used
for special applications.
@@ -789,7 +832,8 @@ symbology that can encode full 256 character extended-ASCII.
Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.
-\paragraph{Data and Options}\label{data-and-options-8}
+\hypertarget{data-and-options-8}{%
+\paragraph{Data and Options}\label{data-and-options-8}}
\begin{itemize}
\tightlist
@@ -797,7 +841,8 @@ Standards: ISO/IEC 24778, ANSI/AIM BC13 - ISS Aztec Code.
The data field contains the rune number \texttt{0} to \texttt{255}.
\end{itemize}
-\paragraph{Examples}\label{examples-5}
+\hypertarget{examples-5}{%
+\paragraph{Examples}\label{examples-5}}
\begin{verbatim}
Data: 25
@@ -807,85 +852,137 @@ Encoder: aztecrune
\includegraphics{images/aztec-3.eps}
-\hypertarget{data-matrix}{\subsubsection{Data
-Matrix}\label{data-matrix}}
+\hypertarget{data-matrix}{%
+\subsubsection{Data Matrix}\label{data-matrix}}
The \textbf{Data Matrix} symbology is 2D matrix-style barcode that can
encode full 256 character extended-ASCII.
-Also known as: Data Matrix ECC 200.
+Also known as: Data Matrix ECC 200, DataMatrix.
Variants:
\begin{itemize}
\tightlist
\item
+ \protect\hyperlink{data-matrix-rectangular}{Data Matrix Rectangular}
+ is a variant of Data Matrix that uses rectangular symbols.
+\item
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension} is a variant of Data Matrix Rectangular that
+ provides a greater range of symbol dimensions.
+\item
\protect\hyperlink{gs1-datamatrix}{GS1 DataMatrix} is a variant of
Data Matrix that should be used when encoding data that is in
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
+ \protect\hyperlink{gs1-digital-link-data-matrix}{GS1 Digital Link Data
+ Matrix} is a variant of Data Matrix that should be used when encoding
+ a GS1 Digital Link URI.
+\item
\protect\hyperlink{hibc-symbols}{HIBC Data Matrix} is a variant of
Data Matrix that should be used when encoding HIBC formatted data.
+\item
+ \protect\hyperlink{mailmark}{Royal Mail Mailmark} is a variant of Data
+ Matrix that is used by the Royal Mail postal service on letters and
+ other small mailpieces.
\end{itemize}
Standards: ISO/IEC 16022, ANSI/AIM BC11 - ISS Data Matrix.
-\paragraph{Data and Options}\label{data-and-options-9}
+\hypertarget{data-and-options-9}{%
+\paragraph{Data and Options}\label{data-and-options-9}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value. This is useful for specifying unprintable characters.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1}, \texttt{\^{}PROG},
- \texttt{\^{}MAC5}, \texttt{\^{}MAC6}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1. \emph{Recommendation: Use
+ \protect\hyperlink{gs1-datamatrix}{GS1 DataMatrix} for encoding GS1
+ AI syntax data.}
+ \item
+ \texttt{\^{}PROG}: PROG - Reader programming
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
\item
- The \textbf{format} option is used to specify the shape of the symbol,
- either \texttt{square} (default) or \texttt{rectangle}.
+ Whenever the data field contains suitable input, the encoder will
+ compress ISO/IEC 15434 structured data (internally using the 05 Macro
+ and 06 Macro codewords.)
\item
- The \textbf{dmre} option enable Data Matrix Rectangular Extension with
- increases the number of rectangular symbol sizes available.
+ When the \textbf{dotty} option is specified the modules are rendered
+ as dots rather than squares. The dot radius can be adjusted using the
+ \textbf{inkspread} option.
\item
The \textbf{columns} and \textbf{rows} options are used to specify the
size of the symbol.
\item
The \textbf{version} option can also be used to specify the symbol
- size, as \texttt{version=RxC}. Valid options are:
+ size, as \texttt{version=RxC}. Valid options are \emph{10x10},
+ \emph{12x12}, \emph{14x14}, \emph{16x16}, \emph{18x18}, \emph{20x20},
+ \emph{22x22}, \emph{24x24}, \emph{26x26}, \emph{32x32}, \emph{36x36},
+ \emph{40x40}, \emph{44x44}, \emph{48x48}, \emph{52x52}, \emph{64x64},
+ \emph{72x72}, \emph{80x80}, \emph{88x88}, \emph{96x96},
+ \emph{104x104}, \emph{120x120}, \emph{132x132}, \emph{144x144}
+\item
+ If \textbf{columns}, \textbf{rows} and \textbf{version} are
+ unspecified the encoder will default to creating a symbol of the
+ specified \textbf{format} that is the minimum size to represent the
+ given data.
+\item
+ The \textbf{raw} option denotes that the data field is providing the
+ input as pre-encoded codewords in \texttt{\^{}NNN} format, suitable
+ for direct low-level encoding.
+\item
+ \emph{Deprecated}: The \textbf{format} option is used to specify the
+ shape of the symbol, either:
\begin{itemize}
\tightlist
\item
- With \texttt{format=square}: \emph{10x10}, \emph{12x12},
- \emph{14x14}, \emph{16x16}, \emph{18x18}, \emph{20x20},
- \emph{22x22}, \emph{24x24}, \emph{26x26}, \emph{32x32},
- \emph{36x36}, \emph{40x40}, \emph{44x44}, \emph{48x48},
- \emph{52x52}, \emph{64x64}, \emph{72x72}, \emph{80x80},
- \emph{88x88}, \emph{96x96}, \emph{104x104}, \emph{120x120},
- \emph{132x132}, \emph{144x144}
- \item
- With \texttt{format=rectangle}: \emph{8x18}, \emph{8x32},
- \emph{12x26}, \emph{12x36}, \emph{16x36}, \emph{16x48}
+ \texttt{square} (default)
\item
- With \texttt{format=rectangle} and \texttt{dmre}: \emph{8x18},
- \emph{8x32}, \emph{8x48}, \emph{8x64}, \emph{12x26}, \emph{12x36},
- \emph{12x64}, \emph{16x36}, \emph{16x48}, \emph{16x64},
- \emph{24x32}, \emph{24x36}, \emph{24x48}, \emph{24x64},
- \emph{26x32}, \emph{26x40}, \emph{26x48}, \emph{26x64}
+ \texttt{rectangle}: Use
+ \protect\hyperlink{data-matrix-rectangular}{Data Matrix Rectangular}
+ for rectangular symbols.
\end{itemize}
\item
- If \textbf{columns}, \textbf{rows} and \textbf{version} are
- unspecified the encoder will default to creating a symbol of the
- specified \textbf{format} that is the minimum size to represent the
- given data.
+ \emph{Deprecated: Use
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension}.} The \textbf{dmre} option enables Data Matrix
+ Rectangular Extension symbols based on the ISO/IEC standard, which
+ increases the number of rectangular symbol sizes available.
+\item
+ \emph{Deprecated: Use
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension} with dimdmre option.} The \textbf{dindmre}
+ option enables Data Matrix Rectangular Extension symbols based on the
+ obsolete DIN standard.
+\item
+ \emph{Deprecated: For internal use.} The \textbf{mailmark} option
+ signifies the requirement to use Mailmark-specific encoding.
\end{itemize}
-\paragraph{Examples}\label{examples-6}
+\hypertarget{examples-6}{%
+\paragraph{Examples}\label{examples-6}}
+
+Identical symbols, automatically sized, the latter showing use of the
+parse option:
\begin{verbatim}
Data: This is Data Matrix
@@ -901,6 +998,14 @@ Encoder: datamatrix
\includegraphics{images/datamatrix-1.eps}
+Identical symbols with a fixed size:
+
+\begin{verbatim}
+Data: Fixed size
+Options: version=48x48
+Encoder: datamatrix
+\end{verbatim}
+
\begin{verbatim}
Data: Fixed size
Options: rows=48 columns=48
@@ -909,6 +1014,8 @@ Encoder: datamatrix
\includegraphics{images/datamatrix-2.eps}
+A rectangular symbol with a fixed size:
+
\begin{verbatim}
Data: Rectangular
Options: format=rectangle version=16x48
@@ -917,7 +1024,230 @@ Encoder: datamatrix
\includegraphics{images/datamatrix-3.eps}
-\subsubsection{Han Xin Code}\label{han-xin-code}
+An advanced use containing "hidden data" in the padding codewords as
+used by some non-standard, "high-security" applications. The technique
+works by filling the symbol using raw codewords formed from the standard
+data immediately followed by the non-standard padding data beginning
+with \texttt{\^{}129}:
+
+\begin{verbatim}
+Data: ^066^067^068^142^052^129^161^056^206^101^251^147
+Options: version=16x16 raw
+Encoder: datamatrix
+\end{verbatim}
+
+\hypertarget{data-matrix-rectangular}{%
+\subsubsection{Data Matrix Rectangular}\label{data-matrix-rectangular}}
+
+The \textbf{Data Matrix Rectangular} symbology is a rectangular variant
+of \protect\hyperlink{data-matrix}{Data Matrix}.
+
+Variants:
+
+\begin{itemize}
+\tightlist
+\item
+ \protect\hyperlink{data-matrix}{Data Matrix} is the standard square
+ variant of the symbology.
+\item
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension} is a variant of Data Matrix Rectangular that
+ provides a greater range of symbol dimensions.
+\end{itemize}
+
+Standards: ISO/IEC 16022, ANSI/AIM BC11 - ISS Data Matrix.
+
+\hypertarget{data-and-options-10}{%
+\paragraph{Data and Options}\label{data-and-options-10}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
+\item
+ When the \textbf{parse} option is specified, any instances of
+ \texttt{\^{}NNN} in the data field are replaced with their equivalent
+ ASCII value. This is useful for specifying unprintable characters.
+\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1. \emph{Recommendation: Use
+ \protect\hyperlink{gs1-datamatrix}{GS1 DataMatrix} for encoding GS1
+ AI syntax data.}
+ \item
+ \texttt{\^{}PROG}: PROG - Reader programming
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
+\item
+ Whenever the data field contains suitable input, the encoder will
+ compress ISO/IEC 15434 structured data (internally using the 05 Macro
+ and 06 Macro codewords.)
+\item
+ When the \textbf{dotty} option is specified the modules are rendered
+ as dots rather than squares. The dot radius can be adjusted using the
+ \textbf{inkspread} option.
+\item
+ \emph{Deprecated: Use
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension}.} The \textbf{dmre} option enables Data Matrix
+ Rectangular Extension symbols based on the ISO/IEC standard, which
+ increases the number of rectangular symbol sizes available.
+\item
+ \emph{Deprecated: Standard is obsolete. Use
+ \protect\hyperlink{data-matrix-rectangular-extension}{Data Matrix
+ Rectangular Extension} with the dindmre option.} The \textbf{dindmre}
+ option enables Data Matrix Rectangular Extension symbols based on the
+ obsolete DIN standard.
+\item
+ The \textbf{columns} and \textbf{rows} options are used to specify the
+ size of the symbol.
+\item
+ The \textbf{version} option can also be used to specify the symbol
+ size, as \texttt{version=RxC}. Valid options are \emph{8x18},
+ \emph{8x32}, \emph{12x26}, \emph{12x36}, \emph{16x36}, \emph{16x48}.
+\item
+ If \textbf{columns}, \textbf{rows} and \textbf{version} are
+ unspecified the encoder will default to creating a symbol that is the
+ minimum size to represent the given data.
+\item
+ The \textbf{raw} option denotes that the data field is providing the
+ input as pre-encoded codewords in \texttt{\^{}NNN} format, suitable
+ for direct low-level encoding.
+\end{itemize}
+
+\hypertarget{examples-7}{%
+\paragraph{Examples}\label{examples-7}}
+
+A rectangular symbol with a fixed size:
+
+\begin{verbatim}
+Data: Rectangular
+Options: version=16x48
+Encoder: datamatrixrectangular
+\end{verbatim}
+
+\includegraphics{images/datamatrix-3.eps}
+
+\hypertarget{data-matrix-rectangular-extension}{%
+\subsubsection{Data Matrix Rectangular
+Extension}\label{data-matrix-rectangular-extension}}
+
+The \textbf{Data Matrix Rectangular Extension} symbology is an
+enhancement to \protect\hyperlink{data-matrix-rectangular}{Data Matrix
+Rectangular} that provides a greater range of symbol dimensions.
+
+Also known as: DMRE.
+
+Variants:
+
+\begin{itemize}
+\tightlist
+\item
+ \protect\hyperlink{data-matrix}{Data Matrix} is the standard square
+ variant of the symbology.
+\item
+ \protect\hyperlink{data-matrix-rectangular}{Data Matrix Rectangular}
+ is the original rectangular variant of Data Matrix that provides a
+ limited range of symbol dimensions.
+\end{itemize}
+
+Standards: ISO/IEC 21471.
+
+\hypertarget{data-and-options-11}{%
+\paragraph{Data and Options}\label{data-and-options-11}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
+\item
+ When the \textbf{parse} option is specified, any instances of
+ \texttt{\^{}NNN} in the data field are replaced with their equivalent
+ ASCII value. This is useful for specifying unprintable characters.
+\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}PROG}: PROG - Reader programming
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
+\item
+ Whenever the data field contains suitable input, the encoder will
+ compress ISO/IEC 15434 structured data (internally using the 05 Macro
+ and 06 Macro codewords.)
+\item
+ When the \textbf{dotty} option is specified the modules are rendered
+ as dots rather than squares. The dot radius can be adjusted using the
+ \textbf{inkspread} option.
+\item
+ The \textbf{columns} and \textbf{rows} options are used to specify the
+ size of the symbol.
+\item
+ The \textbf{version} option can also be used to specify the symbol
+ size, as \texttt{version=RxC}. Valid options are \emph{8x18},
+ \emph{8x32}, \emph{8x48}, \emph{8x64}, \emph{8x80}, \emph{8x96},
+ \emph{8x120}, \emph{8x144}, \emph{12x26}, \emph{12x36}, \emph{12x64},
+ \emph{12x88}, \emph{16x36}, \emph{16x48}, \emph{16x64}, \emph{20x36},
+ \emph{20x44}, \emph{20x64}, \emph{22x48}, \emph{24x48}, \emph{24x64},
+ \emph{26x40}, \emph{26x48}, \emph{26x64}.
+\item
+ If \textbf{columns}, \textbf{rows} and \textbf{version} are
+ unspecified the encoder will default to creating a symbol that is the
+ minimum size to represent the given data.
+\item
+ The \textbf{raw} option denotes that the data field is providing the
+ input as pre-encoded codewords in \texttt{\^{}NNN} format, suitable
+ for direct low-level encoding.
+\item
+ \emph{Deprecated: Standard is obsolete.} The \textbf{dindmre} option
+ select Data Matrix Rectangular Extension symbols whose dimensions are
+ based on the obsolete DIN standard, rather than the current ISO
+ standard.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ With \texttt{dindmre} the valid version \textbf{options} are
+ \emph{8x18}, \emph{8x32}, \emph{8x48}, \emph{8x64}, \emph{12x26},
+ \emph{12x36}, \emph{12x64}, \emph{16x36}, \emph{16x48},
+ \emph{16x64}, \emph{24x32}, \emph{24x36}, \emph{24x48},
+ \emph{24x64}, \emph{26x32}, \emph{26x40}, \emph{26x48},
+ \emph{26x64}.
+ \end{itemize}
+\end{itemize}
+
+\hypertarget{examples-8}{%
+\paragraph{Examples}\label{examples-8}}
+
+A DMRE symbol with a fixed size:
+
+\begin{verbatim}
+Data: 1234
+Options: version=8x80
+Encoder: datamatrixrectangularextension
+\end{verbatim}
+
+\includegraphics{images/datamatrix-4.eps}
+
+\hypertarget{han-xin-code}{%
+\subsubsection{Han Xin Code}\label{han-xin-code}}
The \textbf{Han Xin Code} symbology is a 2D matrix-style barcode
symbology that can encode full 256 character extended-ASCII.
@@ -926,12 +1256,15 @@ Also known as: Chinese Sensible.
Standards: GB/T 21049-2007.
-\paragraph{Data and Options}\label{data-and-options-10}
+\hypertarget{data-and-options-12}{%
+\paragraph{Data and Options}\label{data-and-options-12}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
@@ -960,7 +1293,8 @@ Standards: GB/T 21049-2007.
correction level.
\end{itemize}
-\paragraph{Examples}\label{examples-7}
+\hypertarget{examples-9}{%
+\paragraph{Examples}\label{examples-9}}
\begin{verbatim}
Data: Han Xin Code
@@ -970,7 +1304,8 @@ Encoder: hanxin
\includegraphics{images/hanxin-1.eps}
-\hypertarget{micropdf417}{\subsubsection{MicroPDF417}\label{micropdf417}}
+\hypertarget{micropdf417}{%
+\subsubsection{MicroPDF417}\label{micropdf417}}
The \textbf{MicroPDF417} barcode symbology is 2D stacked-linear barcode
based on \protect\hyperlink{pdf417}{PDF417} that can encode full 256
@@ -990,17 +1325,29 @@ Variants:
Standards: ISO/IEC 24728, AIM ISS - MicroPDF417.
-\paragraph{Data and Options}\label{data-and-options-11}
+\hypertarget{data-and-options-13}{%
+\paragraph{Data and Options}\label{data-and-options-13}}
\begin{itemize}
-\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI811799}: ECI indicators
+ \end{itemize}
+\item
The \textbf{columns} and \textbf{rows} options are used to specify the
size of the symbol. Valid values are:
@@ -1027,29 +1374,34 @@ Standards: ISO/IEC 24728, AIM ISS - MicroPDF417.
input as a pre-encoded codewords in \texttt{\^{}NNN} format, suitable
for direct low-level encoding.
\item
- The \textbf{cca} option identifies this symbol as a \emph{CC-A} 2D
- component of a \protect\hyperlink{gs1-composite-symbols}{GS1
- Composite} symbol.
-\item
- The \textbf{ccb} option identifies this symbol as a \emph{CC-B} 2D
- component of a \protect\hyperlink{gs1-composite-symbols}{GS1
- Composite} symbol.
-\item
- Note: Special size rules apply when the \textbf{cca} option is given,
- in which case the \textbf{columns} and \textbf{rows} options that are
- used to specify the size of the symbol must be one of:
+ \emph{Deprecated: Internal use.} The \textbf{cca} option identifies
+ this symbol as a \emph{CC-A} 2D component of a
+ \protect\hyperlink{gs1-composite-symbols}{GS1 Composite} symbol.
\begin{itemize}
\tightlist
\item
- \emph{2x5}, \emph{2x6}, \emph{2x7}, \emph{2x8}, \emph{2x9},
- \emph{2x10}, \emph{2x12}, \emph{3x4}, \emph{3x5}, \emph{3x6},
- \emph{3x7}, \emph{3x8}, \emph{4x3}, \emph{4x4}, \emph{4x5},
- \emph{4x6}, \emph{4x7}
+ Special size rules apply when the \textbf{cca} option is given, in
+ which case the \textbf{columns} and \textbf{rows} options that are
+ used to specify the size of the symbol must be one of:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \emph{2x5}, \emph{2x6}, \emph{2x7}, \emph{2x8}, \emph{2x9},
+ \emph{2x10}, \emph{2x12}, \emph{3x4}, \emph{3x5}, \emph{3x6},
+ \emph{3x7}, \emph{3x8}, \emph{4x3}, \emph{4x4}, \emph{4x5},
+ \emph{4x6}, \emph{4x7}
+ \end{itemize}
\end{itemize}
+\item
+ \emph{Deprecated: Internal use.} The \textbf{ccb} option identifies
+ this symbol as a \emph{CC-B} 2D component of a
+ \protect\hyperlink{gs1-composite-symbols}{GS1 Composite} symbol.
\end{itemize}
-\paragraph{Examples}\label{examples-8}
+\hypertarget{examples-10}{%
+\paragraph{Examples}\label{examples-10}}
\begin{verbatim}
Data: MicroPDF417
@@ -1067,7 +1419,8 @@ Encoder: micropdf417
\includegraphics{images/micropdf417-2.eps}
-\hypertarget{pdf417}{\subsubsection{PDF417}\label{pdf417}}
+\hypertarget{pdf417}{%
+\subsubsection{PDF417}\label{pdf417}}
The \textbf{PDF417} barcode symbology is 2D stacked-linear barcode that
can encode full 256 character extended-ASCII.
@@ -1090,17 +1443,30 @@ Variants:
Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.
-\paragraph{Data and Options}\label{data-and-options-12}
+\hypertarget{data-and-options-14}{%
+\paragraph{Data and Options}\label{data-and-options-14}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI811799}: ECI indicators.
+ \end{itemize}
+\item
The \textbf{eclevel} option is used to specify the error correction
level, from 1 to 5. The default is to choose a standard level of error
correction that is determined by the encoded data length.
@@ -1117,21 +1483,22 @@ Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.
The \textbf{rowmult} option is used to specify how tall each bar is,
with respect to the minimum module width. The default is 3.
\item
+ The \textbf{raw} option denotes that the data field is providing the
+ input as a pre-encoded codewords in \texttt{\^{}NNN} format, suitable
+ for direct low-level encoding.
+\item
\emph{Deprecated: Use \protect\hyperlink{compact-pdf417}{Compact
PDF417} instead. The \textbf{compact} option is used to create a
compact/truncated PDF417 symbol that has fewer bars per row that a
standard symbol and hence is more narrow.}
\item
- The \textbf{raw} option denotes that the data field is providing the
- input as a pre-encoded codewords in \texttt{\^{}NNN} format, suitable
- for direct low-level encoding.
-\item
- The \textbf{ccc} option identifies this symbol as a \emph{CC-C} 2D
- component of a \protect\hyperlink{gs1-composite-symbols}{GS1
- Composite} symbol.
+ \emph{Deprecated: Internal use.} The \textbf{ccc} option identifies
+ this symbol as a \emph{CC-C} 2D component of a
+ \protect\hyperlink{gs1-composite-symbols}{GS1 Composite} symbol.
\end{itemize}
-\paragraph{Examples}\label{examples-9}
+\hypertarget{examples-11}{%
+\paragraph{Examples}\label{examples-11}}
\begin{verbatim}
Data: PDF417
@@ -1165,8 +1532,8 @@ Encoder: pdf417
\includegraphics{images/pdf417-5.eps}
-\hypertarget{compact-pdf417}{\subsubsection{Compact
-PDF417}\label{compact-pdf417}}
+\hypertarget{compact-pdf417}{%
+\subsubsection{Compact PDF417}\label{compact-pdf417}}
\textbf{Compact PDF417} is a shortened form of the
\protect\hyperlink{pdf417}{PDF417} barcode that is used in applications
@@ -1191,17 +1558,30 @@ Variants:
Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.
-\paragraph{Data and Options}\label{data-and-options-13}
+\hypertarget{data-and-options-15}{%
+\paragraph{Data and Options}\label{data-and-options-15}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI811799}: ECI indicators
+ \end{itemize}
+\item
The \textbf{eclevel} option is used to specify the error correction
level, from 1 to 5. The default is to choose a standard level of error
correction that is determined by the encoded data length.
@@ -1223,7 +1603,8 @@ Standards: ISO/IEC 15438, DD ENV 12925, AIM USS - PDF417.
for direct low-level encoding.
\end{itemize}
-\paragraph{Examples}\label{examples-10}
+\hypertarget{examples-12}{%
+\paragraph{Examples}\label{examples-12}}
\begin{verbatim}
Data: A truncated PDF417
@@ -1233,7 +1614,8 @@ Encoder: pdf417compact
\includegraphics{images/pdf417-3.eps}
-\hypertarget{qr-code}{\subsubsection{QR Code}\label{qr-code}}
+\hypertarget{qr-code}{%
+\subsubsection{QR Code}\label{qr-code}}
The \textbf{QR Code} symbology is a 2D matrix-style barcode symbology
that can encode full 256 character extended-ASCII.
@@ -1253,23 +1635,48 @@ Variants:
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
+ \protect\hyperlink{gs1-digital-link-qr-code}{GS1 Digital Link QR Code}
+ is a variant of Data Matrix that should be used when encoding a GS1
+ Digital Link URI.
+\item
\protect\hyperlink{hibc-symbols}{HIBC QR Code} is a variant of QR Code
that should be used when encoding HIBC formatted data.
+\item
+ \protect\hyperlink{swiss-qr-code}{Swiss QR Code} is a variant of the
+ QR Code for use with the QR-bill application supporting Swiss
+ payments.
\end{itemize}
Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.
-\paragraph{Data and Options}\label{data-and-options-14}
+\hypertarget{data-and-options-16}{%
+\paragraph{Data and Options}\label{data-and-options-16}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data.
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1. When supported by the receiver characters from other code
+ pages can be encoded using Extended Channel Interpretation (ECI).
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1. \emph{Recommendation: Use
+ \protect\hyperlink{gs1-qr-code}{GS1 QR Code} for encoding GS1 AI
+ syntax data.}
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
+\item
The \textbf{eclevel} option is used to specify the error correction
level:
@@ -1292,18 +1699,23 @@ Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.
is the minimum size to represent the given data at the selected error
correction level.
\item
- The \textbf{format} option is used to select between
- \texttt{format=full} and \texttt{format=micro} (deprecated) symbol
- types. Alternatively, \texttt{format=any} will select the optimal
- symbol format for the given data. By default \emph{full} format
- symbols will be generated.
-\item
- Note: It is recommended that the
- \protect\hyperlink{micro-qr-code}{Micro QR Code} encoder is used for
- such symbols.
+ \emph{Deprecated}: The \textbf{format} option is used to specify the
+ symbol type, either:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{full} (default)
+ \item
+ \texttt{micro}: Use \protect\hyperlink{micro-qr-code}{Micro QR Code}
+ for Micro QR Code symbols.
+ \item
+ \texttt{rmqr}: The standard is still in draft.
+ \end{itemize}
\end{itemize}
-\paragraph{Examples}\label{examples-11}
+\hypertarget{examples-13}{%
+\paragraph{Examples}\label{examples-13}}
\begin{verbatim}
Data: QR Code
@@ -1327,8 +1739,8 @@ Encoder: qrcode
\includegraphics{images/qrcode-2.eps}
-\hypertarget{micro-qr-code}{\subsubsection{Micro QR
-Code}\label{micro-qr-code}}
+\hypertarget{micro-qr-code}{%
+\subsubsection{Micro QR Code}\label{micro-qr-code}}
The \textbf{Micro QR Code} symbology is a smaller variant of
\protect\hyperlink{qr-code}{QR Code} that is used in applications that
@@ -1347,13 +1759,18 @@ Variants:
Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.
-\paragraph{Data and Options}\label{data-and-options-15}
+\hypertarget{data-and-options-17}{%
+\paragraph{Data and Options}\label{data-and-options-17}}
\begin{itemize}
\tightlist
\item
- The data field can contain any extended ASCII data and will select the
- appropriate size symbol to work around the following restrictions:
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
+\item
+ An appropriate size will be selected to work around the following
+ restrictions:
\begin{itemize}
\tightlist
@@ -1389,7 +1806,8 @@ Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.
correction level.
\end{itemize}
-\paragraph{Examples}\label{examples-12}
+\hypertarget{examples-14}{%
+\paragraph{Examples}\label{examples-14}}
\begin{verbatim}
Data: 01234567
@@ -1399,9 +1817,90 @@ Encoder: microqrcode
\includegraphics{images/qrcode-5.eps}
-\subsection{One-Dimensional}\label{one-dimensional}
+\hypertarget{swiss-qr-code}{%
+\subsubsection{Swiss QR Code}\label{swiss-qr-code}}
+
+\textbf{Swiss QR Code} is a variant of the
+\protect\hyperlink{qr-code}{QR Code} barcode symbology for use with the
+QR-bill application supporting Swiss payments.
+
+Standards: Swiss Implementation Guidelines QR-bill, ISO/IEC 18004, ITS -
+QR Code
+
+\hypertarget{data-and-options-18}{%
+\paragraph{Data and Options}\label{data-and-options-18}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input is provided in the format described in the Swiss
+ Implementation Guidelines QR-bill document.
+\item
+ The \textbf{version} option is used to specify the size of the symbol,
+ 5 to 25. This is not typically specified.
+\item
+ If the \textbf{version} is unspecified the encoder will default to
+ creating a symbol that is the minimum size to represent the given data
+ at the selected error correction level.
+\end{itemize}
-\hypertarget{code-128}{\subsubsection{Code 128}\label{code-128}}
+Note: Swiss QR Code specifies that the image shall be 46mm x 46mm
+(excluding quiet zone), irrespective of QR Code version, and is
+overlayed with a fixed 7mm x 7mm Swiss Cross pattern. The Swiss Cross
+pitch bears no relation to the module width of the QR symbol, so we must
+assume that the application provides sufficient resolution throughout
+the print process that defects produced by issues such as pixel grazing
+are insignificant. Therefore, unlike most other encoders, we do not pick
+a fixed module width to assist with grid fitting but rather ensure that
+the image is scaled to a fixed size, per the specification.
+
+\hypertarget{example-1}{%
+\paragraph{Example}\label{example-1}}
+
+\begin{verbatim}
+Data:
+ SPC
+ 0200
+ 1
+ CH5800791123000889012
+ S
+ Robert Schneider AG
+ Rue du Lac
+ 1268
+ 2501
+ Biel
+ CH
+
+
+
+
+
+
+
+ 199.95
+ CHF
+ K
+ Pia-Maria Rutschmann-Schnyder
+ Grosse Marktgasse 28
+ 9400 Rorschach
+
+
+ CH
+ SCOR
+ RF18539007547034
+
+ EPD
+Options:
+Encoder: swissqrcode
+\end{verbatim}
+
+\includegraphics{images/swissqrcode-1.eps}
+
+\hypertarget{one-dimensional}{%
+\subsection{One-Dimensional}\label{one-dimensional}}
+
+\hypertarget{code-128}{%
+\subsubsection{Code 128}\label{code-128}}
\textbf{Code 128} is an arbitrarily long, high-density barcode symbology
that can be used to encode full 256 character extended-ASCII.
@@ -1424,12 +1923,17 @@ Variants:
Standards: ISO/IEC 15417, ANSI/AIM BC4 - ISS Code 128, BS EN 799.
-\paragraph{Data and Options}\label{data-and-options-16}
+\hypertarget{data-and-options-19}{%
+\paragraph{Data and Options}\label{data-and-options-19}}
\begin{itemize}
\tightlist
\item
- The input can consist of any extended ASCII data.
+ The data field input can consist of any extended ASCII data. The
+ default interpretation of data by readers is in accordance with
+ ISO/IEC 8859-1.
+\item
+ The mandatory check digit is calculated automatically.
\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
@@ -1441,22 +1945,33 @@ Standards: ISO/IEC 15417, ANSI/AIM BC4 - ISS Code 128, BS EN 799.
allow the encoding of extended ASCII characters.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1} through
- \texttt{\^{}FNC3}.
-\item
- When the \textbf{parsefnc} option is specified, the special pseudo
- characters \texttt{\^{}LNKA} and \texttt{\^{}LNKC} at the end of the
- symbol indicate that a GS1-128 symbol includes a \emph{CC-A/B} or
- \emph{CC-C} GS1 composite 2D component.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1. \emph{Recommendation: Use
+ \protect\hyperlink{gs1-128}{GS1-128} for encoding GS1 AI syntax
+ data.}
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
\item
The \textbf{raw} option denotes that the data field is providing the
input as pre-encoded codewords in \texttt{\^{}NNN} format, suitable
for direct low-level encoding.
\item
- The mandatory check digit is calculated automatically.
+ \emph{Deprecated: For internal use.} When the \textbf{parsefnc} option
+ is specified, the special pseudo characters \texttt{\^{}LNKA} and
+ \texttt{\^{}LNKC} at the end of the symbol indicate that a GS1-128
+ symbol includes a \emph{CC-A/B} or \emph{CC-C} GS1 composite 2D
+ component.
\end{itemize}
-\paragraph{Example}\label{example-1}
+\hypertarget{example-2}{%
+\paragraph{Example}\label{example-2}}
\begin{verbatim}
Data: Count0123456789!
@@ -1466,7 +1981,8 @@ Encoder: code128
\includegraphics{images/code128-1.eps}
-\hypertarget{code-39}{\subsubsection{Code 39}\label{code-39}}
+\hypertarget{code-39}{%
+\subsubsection{Code 39}\label{code-39}}
The \textbf{Code 39} barcode symbology is discrete, variable length and
self-checking.
@@ -1492,7 +2008,8 @@ Variants:
Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800, MIL STD
1189.
-\paragraph{Data and Options}\label{data-and-options-17}
+\hypertarget{data-and-options-20}{%
+\paragraph{Data and Options}\label{data-and-options-20}}
\begin{itemize}
\tightlist
@@ -1518,7 +2035,8 @@ Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800, MIL STD
readable text.
\end{itemize}
-\paragraph{Examples}\label{examples-13}
+\hypertarget{examples-15}{%
+\paragraph{Examples}\label{examples-15}}
\begin{verbatim}
Data: CODE39
@@ -1544,8 +2062,8 @@ Encoder: code39
\includegraphics{images/code39-3.eps}
-\hypertarget{code-39-extended}{\subsubsection{Code 39
-Extended}\label{code-39-extended}}
+\hypertarget{code-39-extended}{%
+\subsubsection{Code 39 Extended}\label{code-39-extended}}
The \textbf{Code 39 Extended} barcode symbology is discrete, variable
length and self-checking. It is based on
@@ -1565,7 +2083,8 @@ Variants:
Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800.
-\paragraph{Data and Options}\label{data-and-options-18}
+\hypertarget{data-and-options-21}{%
+\paragraph{Data and Options}\label{data-and-options-21}}
\begin{itemize}
\tightlist
@@ -1586,7 +2105,8 @@ Standards: ISO/IEC 16388, ANSI/AIM BC1 - USS Code 39, BS EN 800.
readable text.
\end{itemize}
-\paragraph{Examples}\label{examples-14}
+\hypertarget{examples-16}{%
+\paragraph{Examples}\label{examples-16}}
\begin{verbatim}
Data: Code39 Ext!
@@ -1604,7 +2124,8 @@ Encoder: code39ext
\includegraphics{images/code39ext-2.eps}
-\hypertarget{code-93}{\subsubsection{Code 93}\label{code-93}}
+\hypertarget{code-93}{%
+\subsubsection{Code 93}\label{code-93}}
\textbf{Code 93} is a continuous, variable length, self-checking barcode
symbology.
@@ -1623,7 +2144,8 @@ Variants:
Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.
-\paragraph{Data and Options}\label{data-and-options-19}
+\hypertarget{data-and-options-22}{%
+\paragraph{Data and Options}\label{data-and-options-22}}
\begin{itemize}
\tightlist
@@ -1640,14 +2162,27 @@ Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.
Symbols \texttt{-.\$/+\%*} and \emph{space}
\end{itemize}
\item
- The \textbf{parsefnc} option allows the special shift characters to be
- supplied as \texttt{\^{}SFT\$}, \texttt{\^{}SFT\%}, \texttt{\^{}SFT/}
- and \texttt{\^{}SFT+}.
-\item
The \textbf{includecheck} option calculates the two check digits.
+\item
+ \emph{Deprecated: For internal use.} The \textbf{parsefnc} option
+ allows the special shift characters to be supplied as escape
+ sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}SFT\$}: (\$)
+ \item
+ \texttt{\^{}SFT\%}: (\%)
+ \item
+ \texttt{\^{}SFT/}: (/)
+ \item
+ \texttt{\^{}SFT+}: (+)
+ \end{itemize}
\end{itemize}
-\paragraph{Examples}\label{examples-15}
+\hypertarget{examples-17}{%
+\paragraph{Examples}\label{examples-17}}
\begin{verbatim}
Data: CODE93
@@ -1668,8 +2203,8 @@ Encoder: code93
\includegraphics{images/code93-2.eps}
-\hypertarget{code-93-extended}{\subsubsection{Code 93
-Extended}\label{code-93-extended}}
+\hypertarget{code-93-extended}{%
+\subsubsection{Code 93 Extended}\label{code-93-extended}}
The \textbf{Code 93 Extended} barcode symbology is continuous, variable
length and self-checking. It is based on
@@ -1690,7 +2225,8 @@ Variants:
Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.
-\paragraph{Data and Options}\label{data-and-options-20}
+\hypertarget{data-and-options-23}{%
+\paragraph{Data and Options}\label{data-and-options-23}}
\begin{itemize}
\tightlist
@@ -1705,7 +2241,8 @@ Standards: ANSI/AIM BC5 - USS Code 93, ITS 93i.
The \textbf{includecheck} option calculates the two check digits.
\end{itemize}
-\paragraph{Examples}\label{examples-16}
+\hypertarget{examples-18}{%
+\paragraph{Examples}\label{examples-18}}
\begin{verbatim}
Data: Code93Ext!
@@ -1723,8 +2260,8 @@ Encoder: code93ext
\includegraphics{images/code93ext-2.eps}
-\hypertarget{interleaved-2-of-5}{\subsubsection{Interleaved 2 of
-5}\label{interleaved-2-of-5}}
+\hypertarget{interleaved-2-of-5}{%
+\subsubsection{Interleaved 2 of 5}\label{interleaved-2-of-5}}
\textbf{Interleaved 2 of 5} is a high-density numeric barcode symbology.
@@ -1743,23 +2280,25 @@ Variants:
Standards: ISO/IEC 16390, ANSI/AIM BC2 - USS Interleaved 2 of 5, BS EN
801.
-\paragraph{Data and Options}\label{data-and-options-21}
+\hypertarget{data-and-options-24}{%
+\paragraph{Data and Options}\label{data-and-options-24}}
\begin{itemize}
\tightlist
\item
The data can consist of any number of digits.
\item
+ If the length of the symbol including the possible check digit would
+ be odd then the data is prefixed by \emph{0}.
+\item
The \textbf{includecheck} option calculates the check digit.
\item
The \textbf{includecheckintext} option makes the calculated checksum
appear in the human readable text.
-\item
- If the length of the symbol including the possible check digit would
- be odd then the data is prefixed by \emph{0}.
\end{itemize}
-\paragraph{Examples}\label{examples-17}
+\hypertarget{examples-19}{%
+\paragraph{Examples}\label{examples-19}}
\begin{verbatim}
Data: 0123456789
@@ -1777,10 +2316,156 @@ Encoder: interleaved2of5
\includegraphics{images/itf-2.eps}
-\subsection{Supply Chain}\label{supply-chain}
+\hypertarget{supply-chain}{%
+\subsection{Supply Chain}\label{supply-chain}}
+
+\hypertarget{ean-14}{%
+\subsubsection{EAN-14}\label{ean-14}}
+
+\textbf{EAN-14} is an implementation of the
+\protect\hyperlink{gs1-128}{GS1-128} barcode symbology with \emph{AI
+(01)} that is used to encode a lone GTIN-14.
+
+Also known as: UCC-14.
+
+Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General
+Specifications.
+
+\hypertarget{data-and-options-25}{%
+\paragraph{Data and Options}\label{data-and-options-25}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input must be a solitary \emph{AI (01)} with thirteen
+ or fourteen digits of a GTIN, i.e. \texttt{(01)...}.
+\item
+ Arbitrary spacing may be placed between the digits to format the human
+ readable text without interfering with the encoded data.
+\item
+ If thirteen digits of primary data are supplied then the check digit
+ is calculated automatically. Otherwise the provided check digit will
+ be verified.
+\end{itemize}
+
+\hypertarget{examples-20}{%
+\paragraph{Examples}\label{examples-20}}
+
+Identical symbols, input provided with and without a check digit:
+
+\begin{verbatim}
+Data: (01)04601234567893
+Options: includetext
+Encoder: ean14
+\end{verbatim}
+
+\begin{verbatim}
+Data: (01)0460123456789
+Options: includetext
+Encoder: ean14
+\end{verbatim}
+
+\includegraphics{images/ean14-1.eps}
+
+\hypertarget{itf-14}{%
+\subsubsection{ITF-14}\label{itf-14}}
+
+\textbf{ITF-14} is an implementation of the
+\protect\hyperlink{interleaved-2-of-5}{Interleaved 2 of 5} barcode
+symbology that is typically used to encode a GTIN-14, GTIN-13 or
+GTIN-12.
+
+Also known as: UPC Shipping Container Symbol, SCS, UPC Case Code.
+
+Standards: ISO/IEC 16390, ANSI/AIM BC2-1995 USS, BS EN 801, GS1 General
+Specifications.
+
+\hypertarget{data-and-options-26}{%
+\paragraph{Data and Options}\label{data-and-options-26}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data consists of either thirteen or fourteen digits.
+\item
+ Arbitrary spacing may be placed between the digits to format the human
+ readable text without interfering with the encoded data.
+\item
+ If thirteen digits are supplied then the check digit is calculated
+ automatically. Otherwise the provided check digit will be verified.
+\end{itemize}
+
+\hypertarget{examples-21}{%
+\paragraph{Examples}\label{examples-21}}
+
+Identical symbols, input provided with and without a check digit:
+
+\begin{verbatim}
+Data: 04601234567893
+Options: includetext
+Encoder: itf14
+\end{verbatim}
-\hypertarget{gs1-datamatrix}{\subsubsection{GS1
-DataMatrix}\label{gs1-datamatrix}}
+\begin{verbatim}
+Data: 0460123456789
+Options: includetext
+Encoder: itf14
+\end{verbatim}
+
+\includegraphics{images/itf-14-1.eps}
+
+\hypertarget{sscc-18}{%
+\subsubsection{SSCC-18}\label{sscc-18}}
+
+\textbf{SSCC-18} is an implementation of the
+\protect\hyperlink{gs1-128}{GS1-128} barcode symbology with \emph{AI
+(00)} that is typically used to encode an eighteen-digit shipping
+container serial number.
+
+Also known as: EAN-18, NVE.
+
+Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General
+Specifications.
+
+\hypertarget{data-and-options-27}{%
+\paragraph{Data and Options}\label{data-and-options-27}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input must be a solitary \emph{AI (00)} with seventeen
+ or eighteen digits of a Serial Shipping Container Code, i.e.
+ \texttt{(00)...}.
+\item
+ Arbitrary spacing may be placed between the digits to format the human
+ readable text without interfering with the encoded data.
+\item
+ If seventeen digits of primary data are supplied then the check digit
+ is calculated automatically. Otherwise the provided check digit will
+ be verified.
+\end{itemize}
+
+\hypertarget{example-3}{%
+\paragraph{Example}\label{example-3}}
+
+Identical symbols, input provided with and without a check digit:
+
+\begin{verbatim}
+Data: (00)006141411234567890
+Options: includetext
+Encoder: sscc18
+\end{verbatim}
+
+\begin{verbatim}
+Data: (00)00614141123456789
+Options: includetext
+Encoder: sscc18
+\end{verbatim}
+
+\includegraphics{images/sscc18-1.eps}
+
+\hypertarget{gs1-datamatrix}{%
+\subsubsection{GS1 DataMatrix}\label{gs1-datamatrix}}
\textbf{GS1 DataMatrix} is an implementation of the
\protect\hyperlink{data-matrix}{Data Matrix} (ECC 200) barcode symbology
@@ -1789,7 +2474,8 @@ formatted} data.
Standards: ISO/IEC 16022, ANSI/AIM BC11 ISS, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-22}
+\hypertarget{data-and-options-28}{%
+\paragraph{Data and Options}\label{data-and-options-28}}
\begin{itemize}
\tightlist
@@ -1799,6 +2485,13 @@ Standards: ISO/IEC 16022, ANSI/AIM BC11 ISS, GS1 General Specifications.
Application Identifier standard format} starting with the mandatory
\emph{(01)} Application Identifier.
\item
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
The \textbf{format} option is used to specify the shape of the symbol,
either \texttt{square} (default) or \texttt{rectangle}.
\item
@@ -1829,7 +2522,8 @@ Standards: ISO/IEC 16022, ANSI/AIM BC11 ISS, GS1 General Specifications.
given data.
\end{itemize}
-\paragraph{Example}\label{example-2}
+\hypertarget{example-4}{%
+\paragraph{Example}\label{example-4}}
\begin{verbatim}
Data: (01)95012345678903(3103)000123
@@ -1839,8 +2533,8 @@ Encoder: gs1datamatrix
\includegraphics{images/gs1datamatrix-1.eps}
-\hypertarget{gs1-qr-code}{\subsubsection{GS1 QR
-Code}\label{gs1-qr-code}}
+\hypertarget{gs1-qr-code}{%
+\subsubsection{GS1 QR Code}\label{gs1-qr-code}}
\textbf{GS1 QR Code} is an implementation of the
\protect\hyperlink{qr-code}{QR Code} barcode symbology with
@@ -1849,7 +2543,8 @@ formatted data}.
Standards: ISO/IEC 18004, ITS - QR Code, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-23}
+\hypertarget{data-and-options-29}{%
+\paragraph{Data and Options}\label{data-and-options-29}}
\begin{itemize}
\tightlist
@@ -1859,6 +2554,13 @@ Standards: ISO/IEC 18004, ITS - QR Code, GS1 General Specifications.
Application Identifier standard format} starting with the mandatory
\emph{(01)} and \emph{(8200)} Application Identifiers.
\item
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
The \textbf{eclevel} option is used to specify the error correction
level:
@@ -1882,7 +2584,8 @@ Standards: ISO/IEC 18004, ITS - QR Code, GS1 General Specifications.
at the selected error correction level.
\end{itemize}
-\paragraph{Example}\label{example-3}
+\hypertarget{example-5}{%
+\paragraph{Example}\label{example-5}}
\begin{verbatim}
Data: (01)03453120000011(8200)http://www.abc.net
@@ -1900,7 +2603,125 @@ Encoder: gs1qrcode
\includegraphics{images/gs1qrcode-2.eps}
-\hypertarget{gs1-128}{\subsubsection{GS1-128}\label{gs1-128}}
+\hypertarget{gs1-digital-link-datamatrix}{%
+\subsubsection{GS1 Digital Link
+DataMatrix}\label{gs1-digital-link-datamatrix}}
+
+\textbf{GS1 Digital Link DataMatrix} is an implementation of the
+\protect\hyperlink{data-matrix}{Data Matrix} (ECC 200) barcode symbology
+containing a GS1 Digital Link URI.
+
+Standards: ISO/IEC 16022, ANSI/AIM BC11 ISS, GS1 Digital Link Standard:
+URI Syntax.
+
+\hypertarget{data-and-options-30}{%
+\paragraph{Data and Options}\label{data-and-options-30}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input is provided as a GS1 Digital Link URI.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
+ The \textbf{format} option is used to specify the shape of the symbol,
+ either \texttt{square} (default) or \texttt{rectangle}.
+\item
+ The \textbf{columns} and \textbf{rows} options are used to specify the
+ size of the symbol.
+\item
+ The \textbf{version} option can also be used to specify the symbol
+ size, as \texttt{version=RxC}. Valid options are:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ With \texttt{format=square}: \emph{10x10}, \emph{12x12},
+ \emph{14x14}, \emph{16x16}, \emph{18x18}, \emph{20x20},
+ \emph{22x22}, \emph{24x24}, \emph{26x26}, \emph{32x32},
+ \emph{36x36}, \emph{40x40}, \emph{44x44}, \emph{48x48},
+ \emph{52x52}, \emph{64x64}, \emph{72x72}, \emph{80x80},
+ \emph{88x88}, \emph{96x96}, \emph{104x104}, \emph{120x120},
+ \emph{132x132}, \emph{144x144}
+ \item
+ With \texttt{format=rectangle}: \emph{8x18}, \emph{8x32},
+ \emph{12x26}, \emph{12x36}, \emph{16x36}, \emph{16x48}
+ \end{itemize}
+\item
+ If \textbf{columns}, \textbf{rows} and \textbf{version} are
+ unspecified the encoder will default to creating a symbol of the
+ specified \textbf{format} that is the minimum size to represent the
+ given data.
+\end{itemize}
+
+\hypertarget{example-6}{%
+\paragraph{Example}\label{example-6}}
+
+\begin{verbatim}
+Data: https://id.gs1.org/01/12312312312333/22/ABC%2d123?99=XYZ%2f987#test
+Options:
+Encoder: gs1dldatamatrix
+\end{verbatim}
+
+\hypertarget{gs1-qr-digital-link-code}{%
+\subsubsection{GS1 QR Digital Link
+Code}\label{gs1-qr-digital-link-code}}
+
+\textbf{GS1 Digital Link QR Code} is an implementation of the
+\protect\hyperlink{qr-code}{QR Code} barcode symbology containing a GS1
+Digital Link URI.
+
+Standards: ISO/IEC 18004, ITS - QR Code, GS1 Digital Link Standard: URI
+Syntax.
+
+\hypertarget{data-and-options-31}{%
+\paragraph{Data and Options}\label{data-and-options-31}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input is provided as a GS1 Digital Link URI.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
+ The \textbf{eclevel} option is used to specify the error correction
+ level:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{eclevel=L} - Low
+ \item
+ \texttt{eclevel=M} - Medium (default)
+ \item
+ \texttt{eclevel=Q} - Quality
+ \item
+ \texttt{eclevel=H} - High
+ \end{itemize}
+\item
+ The \textbf{version} option is used to specify the size of the symbol,
+ 1 to 40.
+\item
+ If the \textbf{version} is unspecified the encoder will default to
+ creating a symbol that is the minimum size to represent the given data
+ at the selected error correction level.
+\end{itemize}
+
+\hypertarget{example-7}{%
+\paragraph{Example}\label{example-7}}
+
+\begin{verbatim}
+Data: https://id.gs1.org/01/12312312312333/22/ABC%2d123?99=XYZ%2f987#test
+Options:
+Encoder: gs1dlqrcode
+\end{verbatim}
+
+\hypertarget{gs1-128}{%
+\subsubsection{GS1-128}\label{gs1-128}}
\textbf{GS1-128} is an implementation of the
\protect\hyperlink{code-128}{Code 128} barcode symbology which carries
@@ -1919,16 +2740,17 @@ Variants:
composite 2D component is required.
\item
\protect\hyperlink{ean-14}{EAN-14} is a variant of GS1-128 that should
- be used when encoding a fourteen-digit GTIN.
+ be used when encoding a lone fourteen-digit GTIN.
\item
\protect\hyperlink{sscc-18}{SSCC-18} is a variant of GS1-128 that
- should be used when encoding an eighteen-digit SSCC.
+ should be used when encoding a lone eighteen-digit SSCC.
\end{itemize}
Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General
Specifications.
-\paragraph{Data and Options}\label{data-and-options-24}
+\hypertarget{data-and-options-32}{%
+\paragraph{Data and Options}\label{data-and-options-32}}
\begin{itemize}
\tightlist
@@ -1937,14 +2759,24 @@ Specifications.
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
- The \textbf{linkagea} option specifies that the symbol includes a
- \emph{CC-A} or \emph{CC-B} GS1 composite 2D component.
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
\item
- The \textbf{linkagec} option specifies that the symbol includes a
- \emph{CC-C} GS1 composite 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkagea} option
+ specifies that the symbol includes a \emph{CC-A} or \emph{CC-B} GS1
+ composite 2D component.
+\item
+ \emph{Deprecated: For internal use.} The \textbf{linkagec} option
+ specifies that the symbol includes a \emph{CC-C} GS1 composite 2D
+ component.
\end{itemize}
-\paragraph{Examples}\label{examples-18}
+\hypertarget{examples-22}{%
+\paragraph{Examples}\label{examples-22}}
GTIN \emph{95012345678903}; Weight \emph{0.123kg}:
@@ -1967,149 +2799,61 @@ Encoder: gs1-128
\includegraphics{images/ean128-2.eps}
-\hypertarget{ean-14}{\subsubsection{EAN-14}\label{ean-14}}
+\hypertarget{gs1-dotcode}{%
+\subsubsection{GS1 DotCode}\label{gs1-dotcode}}
-\textbf{EAN-14} is an implementation of the
-\protect\hyperlink{gs1-128}{GS1-128} barcode symbology with \emph{AI
-(01)} that is typically used to encode a GTIN-14.
-
-Also known as: UCC-14.
+\textbf{GS1 DotCode} is an implementation of the
+\protect\hyperlink{dotcode}{DotCode} barcode symbology with
+\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
+formatted} data.
-Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General
-Specifications.
+Standards: AIM - ISS DotCode, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-25}
+\hypertarget{data-and-options-33}{%
+\paragraph{Data and Options}\label{data-and-options-33}}
\begin{itemize}
\tightlist
\item
The data field input is provided in
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with thirteen or fourteen digits of a GTIN, i.e.
- \texttt{(01)...}.
-\item
- Arbitrary spacing may be placed between the digits to format the human
- readable text without interfering with the encoded data.
-\item
- If thirteen digits of primary data are supplied then the check digit
- is calculated automatically. Otherwise the provided check digit must
- be correct.
-\end{itemize}
-
-\paragraph{Examples}\label{examples-19}
-
-Identical symbols, input provided with and without a check digit:
-
-\begin{verbatim}
-Data: (01)04601234567893
-Options: includetext
-Encoder: ean14
-\end{verbatim}
-
-\begin{verbatim}
-Data: (01)0460123456789
-Options: includetext
-Encoder: ean14
-\end{verbatim}
-
-\includegraphics{images/ean14-1.eps}
-
-\hypertarget{itf-14}{\subsubsection{ITF-14}\label{itf-14}}
-
-\textbf{ITF-14} is an implementation of the
-\protect\hyperlink{interleaved-2-of-5}{Interleaved 2 of 5} barcode
-symbology that is typically used to encode a GTIN-14, GTIN-13 or
-GTIN-12.
-
-Also known as: UPC Shipping Container Symbol, SCS, UPC Case Code.
-
-Standards: ISO/IEC 16390, ANSI/AIM BC2-1995 USS, BS EN 801, GS1 General
-Specifications.
-
-\paragraph{Data and Options}\label{data-and-options-26}
-
-\begin{itemize}
-\tightlist
+ Application Identifier standard format}.
\item
- The data consists of either thirteen or fourteen digits.
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
\item
- Arbitrary spacing may be placed between the digits to format the human
- readable text without interfering with the encoded data.
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
\item
- If thirteen digits are supplied then the check digit is calculated
- automatically. Otherwise the provided check digit must be correct.
-\end{itemize}
-
-\paragraph{Examples}\label{examples-20}
-
-Identical symbols, input provided with and without a check digit:
-
-\begin{verbatim}
-Data: 04601234567893
-Options: includetext
-Encoder: itf14
-\end{verbatim}
-
-\begin{verbatim}
-Data: 0460123456789
-Options: includetext
-Encoder: itf14
-\end{verbatim}
-
-\includegraphics{images/itf-14-1.eps}
-
-\hypertarget{sscc-18}{\subsubsection{SSCC-18}\label{sscc-18}}
-
-\textbf{SSCC-18} is an implementation of the
-\protect\hyperlink{gs1-128}{GS1-128} barcode symbology with \emph{AI
-(00)} that is typically used to encode an eighteen-digit shipping
-container serial number.
-
-Also known as: EAN-18, NVE.
-
-Standards: ISO/IEC 15417, ANSI/AIM BC4-1999 ISS, BS EN 799, GS1 General
-Specifications.
-
-\paragraph{Data and Options}\label{data-and-options-27}
-
-\begin{itemize}
-\tightlist
+ The \textbf{ratio} is used to specify the aspect ratio of the symbol.
+ The default is 1.5.
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (00)} with seventeen or eighteen digits of a Serial Shipping
- Container Code, i.e. \texttt{(00)0...}.
-\item
- Arbitrary spacing may be placed between the digits to format the human
- readable text without interfering with the encoded data.
+ The \textbf{columns} and \textbf{rows} options are used to specify the
+ size of the symbol. When these are not specified a symbol is generated
+ that maintains the selected aspect ratio.
\item
- The mandatory check digit is calculated automatically and any user
- provided check digit is discarded.
+ \emph{Deprecated: Use only if performance is a concern.} The
+ \textbf{fast} option is used to enable the optional high-speed symbol
+ masking algorithm.
\end{itemize}
-\paragraph{Example}\label{example-4}
-
-Identical symbols, input provided with and without a check digit:
-
-\begin{verbatim}
-Data: (00)006141411234567890
-Options: includetext
-Encoder: sscc18
-\end{verbatim}
+\hypertarget{examples-23}{%
+\paragraph{Examples}\label{examples-23}}
\begin{verbatim}
-Data: (00)00614141123456789
-Options: includetext
-Encoder: sscc18
+Data: (235)5vBZIF%!<B;?oa%(01)01234567890128(8008)19052001
+Options: rows=16
+Encoder: gs1dotcode
\end{verbatim}
-\includegraphics{images/sscc18-1.eps}
+\includegraphics{images/gs1dotcode-1.eps}
-\subsection{GS1 DataBar Family}\label{gs1-databar-family}
+\hypertarget{gs1-databar-family}{%
+\subsection{GS1 DataBar Family}\label{gs1-databar-family}}
-\hypertarget{gs1-databar-omnidirectional}{\subsubsection{GS1 DataBar
+\hypertarget{gs1-databar-omnidirectional}{%
+\subsubsection{GS1 DataBar
Omnidirectional}\label{gs1-databar-omnidirectional}}
\textbf{GS1 DataBar Omnidirectional} is a fixed-length, linear barcode
@@ -2134,26 +2878,25 @@ Variants:
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-28}
+\hypertarget{data-and-options-34}{%
+\paragraph{Data and Options}\label{data-and-options-34}}
\begin{itemize}
\tightlist
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with thirteen or fourteen digits of a GTIN, i.e.
- \texttt{(01)...}.
+ The data field input is must be a solitary \emph{AI (01)} with
+ thirteen or fourteen digits of a GTIN, i.e. \texttt{(01)...}.
\item
If thirteen digits of \emph{AI (01)} data are supplied then the check
- digit is calculated automatically, otherwise the digits are encoded as
- supplied.
+ digit is calculated automatically, otherwise the provided check digit
+ will be verified.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-21}
+\hypertarget{examples-24}{%
+\paragraph{Examples}\label{examples-24}}
Identical symbols, input provided with and without a check digit:
@@ -2171,8 +2914,8 @@ Encoder: databaromni
\includegraphics{images/databaromni-1.eps}
-\hypertarget{gs1-databar-stacked-omnidirectional}{\subsubsection{GS1
-DataBar Stacked
+\hypertarget{gs1-databar-stacked-omnidirectional}{%
+\subsubsection{GS1 DataBar Stacked
Omnidirectional}\label{gs1-databar-stacked-omnidirectional}}
\textbf{GS1 DataBar Stacked Omnidirectional} is a fixed-length, stacked
@@ -2200,26 +2943,25 @@ Variants:
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-29}
+\hypertarget{data-and-options-35}{%
+\paragraph{Data and Options}\label{data-and-options-35}}
\begin{itemize}
\tightlist
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with thirteen or fourteen digits of a GTIN, i.e.
- \texttt{(01)...}.
+ The data field input must be a solitary \emph{AI (01)} with thirteen
+ or fourteen digits of a GTIN, i.e. \texttt{(01)...}.
\item
If thirteen digits of \emph{AI (01)} data are supplied then the check
- digit is calculated automatically, otherwise the digits are encoded as
- supplied.
+ digit is calculated automatically, otherwise the provided check digit
+ will be verified.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-22}
+\hypertarget{examples-25}{%
+\paragraph{Examples}\label{examples-25}}
Identical symbols, input provided with and without a check digit:
@@ -2237,8 +2979,8 @@ Encoder: databarstackedomni
\includegraphics{images/databarstackedomni-1.eps}
-\hypertarget{gs1-databar-expanded}{\subsubsection{GS1 DataBar
-Expanded}\label{gs1-databar-expanded}}
+\hypertarget{gs1-databar-expanded}{%
+\subsubsection{GS1 DataBar Expanded}\label{gs1-databar-expanded}}
\textbf{GS1 DataBar Expanded} is a variable-length, linear barcode
symbology that can be used to encode a GTIN-14 alongside a number of
@@ -2258,12 +3000,17 @@ Variants:
\protect\hyperlink{gs1-composite-symbols}{GS1 DataBar Expanded
Composite} is a variant of GS1 DataBar Expanded that should be used
when a CC-A or CC-B GS1 composite 2D component is required.
+\item
+ \protect\hyperlink{gs1-north-american-coupon-code}{GS1 North American
+ Coupon Code} is an applicaiton of GS1 DataBar Expanded for use with a
+ paperless coupon system.
\end{itemize}
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-30}
+\hypertarget{data-and-options-36}{%
+\paragraph{Data and Options}\label{data-and-options-36}}
\begin{itemize}
\tightlist
@@ -2272,6 +3019,13 @@ Reduced Space Symbology (RSS), GS1 General Specifications.
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
If the data contains a number of application identifiers matching any
of the specifications below then they should be provided in this given
order for maximum encoding efficiency:
@@ -2296,11 +3050,12 @@ Reduced Space Symbology (RSS), GS1 General Specifications.
\texttt{(01)...}
\end{itemize}
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-23}
+\hypertarget{examples-26}{%
+\paragraph{Examples}\label{examples-26}}
\begin{verbatim}
Data: (01)95012345678903(3103)000123
@@ -2310,8 +3065,9 @@ Encoder: databarexpanded
\includegraphics{images/databarexpanded-1.eps}
-\hypertarget{gs1-databar-expanded-stacked}{\subsubsection{GS1 DataBar
-Expanded Stacked}\label{gs1-databar-expanded-stacked}}
+\hypertarget{gs1-databar-expanded-stacked}{%
+\subsubsection{GS1 DataBar Expanded
+Stacked}\label{gs1-databar-expanded-stacked}}
\textbf{GS1 DataBar Expanded Stacked} is a variable-length,
stacked-linear barcode symbology that can be used to encode a GTIN-14
@@ -2332,12 +3088,17 @@ Variants:
\protect\hyperlink{gs1-composite-symbols}{GS1 DataBar Expanded Stacked
Composite} is a variant of GS1 DataBar Expanded Stacked that should be
used when a CC-A or CC-B GS1 composite 2D component is required.
+\item
+ \protect\hyperlink{gs1-north-american-coupon-code}{GS1 North American
+ Coupon Code} is an applicaiton of GS1 DataBar Expanded for use with a
+ paperless coupon system.
\end{itemize}
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-31}
+\hypertarget{data-and-options-37}{%
+\paragraph{Data and Options}\label{data-and-options-37}}
\begin{itemize}
\tightlist
@@ -2346,6 +3107,13 @@ Reduced Space Symbology (RSS), GS1 General Specifications.
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
If the data contains a number of application identifiers matching any
of the specifications below then they should be provided in this given
order for maximum encoding efficiency:
@@ -2374,11 +3142,12 @@ Reduced Space Symbology (RSS), GS1 General Specifications.
segments per row which must be an even number. The default is
\emph{4}.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-24}
+\hypertarget{examples-27}{%
+\paragraph{Examples}\label{examples-27}}
\begin{verbatim}
Data: (01)95012345678903(3103)000123
@@ -2388,8 +3157,8 @@ Encoder: databarexpandedstacked
\includegraphics{images/databarexpandedstacked-1.eps}
-\hypertarget{gs1-databar-truncated}{\subsubsection{GS1 DataBar
-Truncated}\label{gs1-databar-truncated}}
+\hypertarget{gs1-databar-truncated}{%
+\subsubsection{GS1 DataBar Truncated}\label{gs1-databar-truncated}}
\textbf{GS1 DataBar Truncated} is a fixed-length, linear barcode
symbology that can be used to encode a GTIN-14 for in-house
@@ -2414,25 +3183,25 @@ Variants:
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-32}
+\hypertarget{data-and-options-38}{%
+\paragraph{Data and Options}\label{data-and-options-38}}
\begin{itemize}
\tightlist
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with 13 or 14 digits of a GTIN, i.e. \texttt{(01)...}.
+ The data field input must be a solitary \emph{AI (01)} with 13 or 14
+ digits of a GTIN, i.e. \texttt{(01)...}.
\item
If thirteen digits of \emph{AI (01)} data are supplied then the check
- digit is calculated automatically, otherwise the digits are encoded as
- supplied.
+ digit is calculated automatically, otherwise the provided check digit
+ will be verified.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-25}
+\hypertarget{examples-28}{%
+\paragraph{Examples}\label{examples-28}}
Identical symbols, input provided with and without a check digit:
@@ -2450,8 +3219,8 @@ Encoder: databartruncated
\includegraphics{images/databartruncated-1.eps}
-\hypertarget{gs1-databar-stacked}{\subsubsection{GS1 DataBar
-Stacked}\label{gs1-databar-stacked}}
+\hypertarget{gs1-databar-stacked}{%
+\subsubsection{GS1 DataBar Stacked}\label{gs1-databar-stacked}}
\textbf{GS1 DataBar Stacked} is a fixed-length, stacked linear barcode
symbology that can be used to encode a GTIN-14 for in-house
@@ -2476,26 +3245,25 @@ Variants:
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-33}
+\hypertarget{data-and-options-39}{%
+\paragraph{Data and Options}\label{data-and-options-39}}
\begin{itemize}
\tightlist
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with thirteen or fourteen digits of a GTIN, i.e.
- \texttt{(01)...}.
+ The data field input must be a solitary \emph{AI (01)} with thirteen
+ or fourteen digits of a GTIN, i.e. \texttt{(01)...}.
\item
If thirteen digits of \emph{AI (01)} data are supplied then the check
- digit is calculated automatically, otherwise the digits are encoded as
- supplied.
+ digit is calculated automatically, otherwise the provided check digit
+ will be verified.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-26}
+\hypertarget{examples-29}{%
+\paragraph{Examples}\label{examples-29}}
Identical symbols, input provided with and without a check digit:
@@ -2513,8 +3281,8 @@ Encoder: databarstacked
\includegraphics{images/databarstacked-1.eps}
-\hypertarget{gs1-databar-limited}{\subsubsection{GS1 DataBar
-Limited}\label{gs1-databar-limited}}
+\hypertarget{gs1-databar-limited}{%
+\subsubsection{GS1 DataBar Limited}\label{gs1-databar-limited}}
\textbf{GS1 DataBar Limited} is fixed-length, linear barcode symbology
that can be used to encode a GTIN-14 beginning with \emph{0} or \emph{1}
@@ -2535,27 +3303,26 @@ Variants:
Standards: ISO/IEC 24724, ITS Reduced Space Symbology (RSS), AIM ISS -
Reduced Space Symbology (RSS), GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-34}
+\hypertarget{data-and-options-40}{%
+\paragraph{Data and Options}\label{data-and-options-40}}
\begin{itemize}
\tightlist
\item
- The data field input is provided in
- \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
- Application Identifier standard format} and must be a solitary
- \emph{AI (01)} with thirteen or fourteen digits of a GTIN starting
- with \emph{0} or \emph{1}, i.e. \texttt{(01)0...} or
- \texttt{(01)1...}.
+ The data field input must be a solitary \emph{AI (01)} with thirteen
+ or fourteen digits of a GTIN starting with \emph{0} or \emph{1}, i.e.
+ \texttt{(01)0...} or \texttt{(01)1...}.
\item
If thirteen digits of \emph{AI (01)} data are supplied then the check
- digit is calculated automatically, otherwise the digits are encoded as
- supplied.
+ digit is calculated automatically, otherwise the provided check digit
+ will be verified.
\item
- The \textbf{linkage} option signifies the presence of a GS1 composite
- 2D component.
+ \emph{Deprecated: For internal use.} The \textbf{linkage} option
+ signifies the presence of a GS1 composite 2D component.
\end{itemize}
-\paragraph{Examples}\label{examples-27}
+\hypertarget{examples-30}{%
+\paragraph{Examples}\label{examples-30}}
Identical symbols, input provided with and without a check digit:
@@ -2573,15 +3340,59 @@ Encoder: databarlimited
\includegraphics{images/databarlimited-1.eps}
-\subsection{Postal Symbols}\label{postal-symbols}
+\hypertarget{gs1-north-american-coupon-code}{%
+\subsubsection{GS1 North American Coupon
+Code}\label{gs1-north-american-coupon-code}}
+
+\textbf{GS1 North American Coupon Code} is an implementation of the
+\protect\hyperlink{gs1-databar-expanded}{GS1 DataBar Expanded} barcode
+symbology with AI (8110) that is used as a paperless coupon system at
+point of sale.
+
+Also known as: GS1 DataBar Coupon, U.S. Coupon Code.
+
+Standards: North American Coupon Application Guideline Using GS1 DataBar
+Expanded Symbols, ISO/IEC 24724, GS1 General Specifications.
+
+\hypertarget{data-and-options-41}{%
+\paragraph{Data and Options}\label{data-and-options-41}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input is provided in
+ \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
+ Application Identifier standard format} and must be a solitary AI
+ (8110).
+\item
+ The \textbf{segments} option is used to specify the maximum number of
+ segments per row which must be an even number. The default is
+ \emph{4}.
+\end{itemize}
+
+\hypertarget{examples-31}{%
+\paragraph{Examples}\label{examples-31}}
+
+\begin{verbatim}
+Data: (8110)106141416543213500110000310123196000
+Options: includetext segments=8
+Encoder: gs1northamericancoupon
+\end{verbatim}
+
+\includegraphics{images/gs1northamericancoupon-1.eps}
+
+\hypertarget{postal-symbols}{%
+\subsection{Postal Symbols}\label{postal-symbols}}
+\hypertarget{australia-post-4-state-customer-code}{%
\subsubsection{Australia Post 4 State Customer
-Code}\label{australia-post-4-state-customer-code}
+Code}\label{australia-post-4-state-customer-code}}
The \textbf{Australia Post 4 State Customer Code} is a barcode used by
the Australian Postal Service to encode the data on letter mail.
-\paragraph{Data and Options}\label{data-and-options-35}
+\hypertarget{data-and-options-42}{%
+\paragraph{Data and Options}\label{data-and-options-42}}
\begin{itemize}
\tightlist
@@ -2607,20 +3418,23 @@ the Australian Postal Service to encode the data on letter mail.
Otherwise the customer information field is encoded using the
default character encoding, \texttt{custinfoenc=character}, which
permits any of the following characters:
- \item
- Upper case letters \texttt{A-Z}
- \item
- Lower case letters \texttt{a-z}
- \item
- Digits \texttt{0-9}
- \item
- Symbols \texttt{space} and \texttt{\#}
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Upper case letters \texttt{A-Z}
+ \item
+ Lower case letters \texttt{a-z}
+ \item
+ Digits \texttt{0-9}
+ \item
+ Symbols \texttt{space} and \texttt{\#}
+ \end{itemize}
\end{itemize}
-\item
- The maditory Reed-Solomon check bars are calculated automatically.
\end{itemize}
-\paragraph{Examples}\label{examples-28}
+\hypertarget{examples-32}{%
+\paragraph{Examples}\label{examples-32}}
FCC 62 symbol with character customer data:
@@ -2642,7 +3456,8 @@ Encoder: auspost
\includegraphics{images/auspost-2.eps}
-\subsubsection{Deutsche Post Identcode}\label{deutsche-post-identcode}
+\hypertarget{deutsche-post-identcode}{%
+\subsubsection{Deutsche Post Identcode}\label{deutsche-post-identcode}}
\textbf{Deutsche Post Identcode} is an implementation of the
\protect\hyperlink{interleaved-2-of-5}{Interleaved 2 of 5} barcode
@@ -2650,7 +3465,8 @@ symbology that is used by German Post for mail routing.
Also known as: DHL Identcode.
-\paragraph{Data and Options}\label{data-and-options-36}
+\hypertarget{data-and-options-43}{%
+\paragraph{Data and Options}\label{data-and-options-43}}
\begin{itemize}
\tightlist
@@ -2671,10 +3487,11 @@ Also known as: DHL Identcode.
\end{itemize}
\item
If eleven digits are supplied then the check digit is calculated
- automatically. Otherwise the provided check digit must be correct.
+ automatically. Otherwise the provided check digit will be verified.
\end{itemize}
-\paragraph{Example}\label{example-5}
+\hypertarget{example-8}{%
+\paragraph{Example}\label{example-8}}
Identical symbols, input provided with an without a check digit:
@@ -2692,7 +3509,8 @@ Encoder: identcode
\includegraphics{images/identcode-1.eps}
-\subsubsection{Deutsche Post Leitcode}\label{deutsche-post-leitcode}
+\hypertarget{deutsche-post-leitcode}{%
+\subsubsection{Deutsche Post Leitcode}\label{deutsche-post-leitcode}}
The \textbf{Deutsche Post Leitcode} barcode symbology is an
implementation of the \protect\hyperlink{interleaved-2-of-5}{Interleaved
@@ -2700,7 +3518,8 @@ implementation of the \protect\hyperlink{interleaved-2-of-5}{Interleaved
Also known as: DHL Leitcode.
-\paragraph{Data and Options}\label{data-and-options-37}
+\hypertarget{data-and-options-44}{%
+\paragraph{Data and Options}\label{data-and-options-44}}
\begin{itemize}
\tightlist
@@ -2723,10 +3542,11 @@ Also known as: DHL Leitcode.
\end{itemize}
\item
If thirteen digits are supplied then the check digit is calculated
- automatically. Otherwise the provided check digit must be correct.
+ automatically. Otherwise the provided check digit will be verified.
\end{itemize}
-\paragraph{Examples}\label{examples-29}
+\hypertarget{examples-33}{%
+\paragraph{Examples}\label{examples-33}}
Identical symbols, input provided with and without a check digit:
@@ -2744,13 +3564,15 @@ Encoder: leitcode
\includegraphics{images/leitcode-1.eps}
+\hypertarget{japan-post-4-state-barcode}{%
\subsubsection{Japan Post 4 State
-Barcode}\label{japan-post-4-state-barcode}
+Barcode}\label{japan-post-4-state-barcode}}
The \textbf{Japan Post 4 state barcode} symbology is used by the Japan
Post service to encode the delivery point identifier on letter mail.
-\paragraph{Data and Options}\label{data-and-options-38}
+\hypertarget{data-and-options-45}{%
+\paragraph{Data and Options}\label{data-and-options-45}}
\begin{itemize}
\tightlist
@@ -2768,7 +3590,8 @@ Post service to encode the delivery point identifier on letter mail.
\end{itemize}
\end{itemize}
-\paragraph{Example}\label{example-6}
+\hypertarget{example-9}{%
+\paragraph{Example}\label{example-9}}
\begin{verbatim}
Data: 6540123789-A-K-Z
@@ -2778,17 +3601,19 @@ Encoder: japanpost
\includegraphics{images/japanpost-1.eps}
-\subsubsection{MaxiCode}\label{maxicode}
+\hypertarget{maxicode}{%
+\subsubsection{MaxiCode}\label{maxicode}}
The \textbf{MaxiCode} barcode symbology is a 2D barcode based on a
hexagonal matrix surrounding a bulls eye pattern. It can encode a
structured carrier message and full 256 character extended-ASCII.
-Also known as: UPS Code, Code 6.
+Also known as: UPS Code, Code 6, Dense Code.
Standards: ISO/IEC 16023, ANSI/AIM BC10 - ISS MaxiCode.
-\paragraph{Data and Options}\label{data-and-options-39}
+\hypertarget{data-and-options-46}{%
+\paragraph{Data and Options}\label{data-and-options-46}}
\begin{itemize}
\tightlist
@@ -2805,9 +3630,11 @@ Standards: ISO/IEC 16023, ANSI/AIM BC10 - ISS MaxiCode.
\texttt{mode=3} - Formatted data containing a Structured Carrier
Message with an alphanumeric (international) postal code.
\item
- \texttt{mode=4} - Unstructured data using standard error correction.
+ \texttt{mode=4} - Unstructured extended ASCII data using standard
+ error correction.
\item
- \texttt{mode=5} - Unstructured data using enhanced error correction.
+ \texttt{mode=5} - Unstructured extended ASCII data using enhanced
+ error correction.
\item
\texttt{mode=6} - Barcode reader programming.
\end{itemize}
@@ -2817,10 +3644,23 @@ Standards: ISO/IEC 16023, ANSI/AIM BC10 - ISS MaxiCode.
enhanced error correction, otherwise it will select \texttt{mode=4}
which provides standard error correction.
\item
+ The default interpretation of data by readers is in accordance with
+ ISO/IEC 8859-1. When supported by the receiver characters from other
+ code pages can be encoded using Extended Channel Interpretation (ECI).
+\item
When the \textbf{parse} option is specified, any instances of
\texttt{\^{}NNN} in the data field are replaced with their equivalent
ASCII value, useful for specifying unprintable characters.
\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
+\item
If \texttt{mode=4}, \texttt{mode=5} or \texttt{mode=6} the data field
may contain any extended ASCII data.
\item
@@ -2846,7 +3686,8 @@ Standards: ISO/IEC 16023, ANSI/AIM BC10 - ISS MaxiCode.
by the structured carrier message.
\end{itemize}
-\paragraph{Examples}\label{examples-30}
+\hypertarget{examples-34}{%
+\paragraph{Examples}\label{examples-34}}
\begin{verbatim}
Data: This is MaxiCode
@@ -2886,16 +3727,18 @@ Encoder: maxicode
\includegraphics{images/maxicode-4.eps}
+\hypertarget{royal-mail-4-state-customer-code}{%
\subsubsection{Royal Mail 4 State Customer
-Code}\label{royal-mail-4-state-customer-code}
+Code}\label{royal-mail-4-state-customer-code}}
The \textbf{Royal Mail 4 State Customer Code} is a barcode symbology
used by the British Postal Service to encode the postcode and delivery
point identifier on letter mail.
-Also known as: RM4SCC, CBC.
+Also known as: RM4SCC, CBC, BPO 4 State Code
-\paragraph{Data and Options}\label{data-and-options-40}
+\hypertarget{data-and-options-47}{%
+\paragraph{Data and Options}\label{data-and-options-47}}
\begin{itemize}
\tightlist
@@ -2915,7 +3758,8 @@ Also known as: RM4SCC, CBC.
be included in the data field
\end{itemize}
-\paragraph{Example}\label{example-7}
+\hypertarget{example-10}{%
+\paragraph{Example}\label{example-10}}
\begin{verbatim}
Data: LE28HS9Z
@@ -2925,16 +3769,53 @@ Encoder: royalmail
\includegraphics{images/rm4scc-1.eps}
+\hypertarget{royal-mail-mailmark}{%
+\subsubsection{Royal Mail Mailmark}\label{royal-mail-mailmark}}
+
+\textbf{Royal Mail Mailmark} is an implementation of the
+\protect\hyperlink{data-matrix}{Data Matrix} (ECC 200) barcode symbology
+for application within the Royal Mail postal system.
+
+Standards: Royal Mail Mailmark Barcode Definition Document
+
+\hypertarget{data-and-options-48}{%
+\paragraph{Data and Options}\label{data-and-options-48}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field input consists of 45 characters of Mailmark structured
+ data (including required space padding) followed by variable-length,
+ free-formatted customer data.
+\item
+ Note: Due to the fixed-length field format of the message data it is
+ important to carefully preserve spaces in the data field.
+\item
+ The mandatory \textbf{type} option is used to specify the size of the
+ symbol, either \texttt{7}, \texttt{9} or \texttt{29}.
+\end{itemize}
+
+\hypertarget{example-11}{%
+\paragraph{Example}\label{example-11}}
+
+\begin{verbatim}
+Data: JGB 012100123412345678AB19XY1A 0 www.xyz.com
+Options: type=29
+Encoder: mailmark
+\end{verbatim}
+
+\hypertarget{royal-tnt-post-4-state-barcode}{%
\subsubsection{Royal TNT Post 4 state
-barcode}\label{royal-tnt-post-4-state-barcode}
+barcode}\label{royal-tnt-post-4-state-barcode}}
The \textbf{Royal TNT Post 4 state barcode} symbology is used by the
Dutch Postal Service to encode the delivery point identifier on letter
mail.
-Also known as: KIX.
+Also known as: KIX, Klant IndeX.
-\paragraph{Data and Options}\label{data-and-options-41}
+\hypertarget{data-and-options-49}{%
+\paragraph{Data and Options}\label{data-and-options-49}}
\begin{itemize}
\tightlist
@@ -2950,7 +3831,8 @@ Also known as: KIX.
\end{itemize}
\end{itemize}
-\paragraph{Example}\label{example-8}
+\hypertarget{example-12}{%
+\paragraph{Example}\label{example-12}}
\begin{verbatim}
Data: 1231FZ13XHS
@@ -2960,7 +3842,8 @@ Encoder: kix
\includegraphics{images/kix-1.eps}
-\subsubsection{USPS Intelligent Mail}\label{usps-intelligent-mail}
+\hypertarget{usps-intelligent-mail}{%
+\subsubsection{USPS Intelligent Mail}\label{usps-intelligent-mail}}
The \textbf{USPS Intelligent Mail} barcode is used by the US Postal
service to encode the delivery and sender information on letter mail.
@@ -2969,7 +3852,8 @@ Also known as: USPS OneCode.
Standards: USPS-STD-11.
-\paragraph{Data and Options}\label{data-and-options-42}
+\hypertarget{data-and-options-50}{%
+\paragraph{Data and Options}\label{data-and-options-50}}
\begin{itemize}
\tightlist
@@ -2993,7 +3877,8 @@ Standards: USPS-STD-11.
be included in the data field.
\end{itemize}
-\paragraph{Example}\label{example-9}
+\hypertarget{example-13}{%
+\paragraph{Example}\label{example-13}}
\begin{verbatim}
Data: 0123456709498765432101234567891
@@ -3003,12 +3888,14 @@ Encoder: onecode
\includegraphics{images/onecode-1.eps}
-\subsubsection{USPS POSTNET}\label{usps-postnet}
+\hypertarget{usps-postnet}{%
+\subsubsection{USPS POSTNET}\label{usps-postnet}}
The \textbf{USPS POSTNET} barcode symbology is used by the US Postal
service to encode the ZIP code information on letter mail.
-\paragraph{Data and Options}\label{data-and-options-43}
+\hypertarget{data-and-options-51}{%
+\paragraph{Data and Options}\label{data-and-options-51}}
\begin{itemize}
\tightlist
@@ -3019,7 +3906,8 @@ service to encode the ZIP code information on letter mail.
included in the data field.
\end{itemize}
-\paragraph{Example}\label{example-10}
+\hypertarget{example-14}{%
+\paragraph{Example}\label{example-14}}
\begin{verbatim}
Data: 12345123412
@@ -3029,12 +3917,14 @@ Encoder: postnet
\includegraphics{images/postnet-1.eps}
-\subsubsection{USPS PLANET}\label{usps-planet}
+\hypertarget{usps-planet}{%
+\subsubsection{USPS PLANET}\label{usps-planet}}
The \textbf{USPS PLANET} barcode symbology is used by the US Postal
service to encode the ZIP code information on letter mail.
-\paragraph{Data and Options}\label{data-and-options-44}
+\hypertarget{data-and-options-52}{%
+\paragraph{Data and Options}\label{data-and-options-52}}
\begin{itemize}
\tightlist
@@ -3045,7 +3935,8 @@ service to encode the ZIP code information on letter mail.
included in the data field.
\end{itemize}
-\paragraph{Example}\label{example-11}
+\hypertarget{example-15}{%
+\paragraph{Example}\label{example-15}}
\begin{verbatim}
Data: 01234567890
@@ -3055,12 +3946,14 @@ Encoder: planet
\includegraphics{images/planet-1.eps}
-\subsubsection{USPS FIM Symbols}\label{usps-fim-symbols}
+\hypertarget{usps-fim-symbols}{%
+\subsubsection{USPS FIM Symbols}\label{usps-fim-symbols}}
The \textbf{USPS FIM} encoder is used to generate static predefined
barcode symbols.
-\paragraph{Data and Options}\label{data-and-options-45}
+\hypertarget{data-and-options-53}{%
+\paragraph{Data and Options}\label{data-and-options-53}}
\begin{itemize}
\tightlist
@@ -3080,7 +3973,8 @@ barcode symbols.
\end{itemize}
\end{itemize}
-\paragraph{Examples}\label{examples-31}
+\hypertarget{examples-35}{%
+\paragraph{Examples}\label{examples-35}}
A USPS FIM A symbol:
@@ -3122,16 +4016,19 @@ Encoder: symbol
\includegraphics{images/fimd-1.eps}
-\subsection{Pharmaceutical Symbols}\label{pharmaceutical-symbols}
+\hypertarget{pharmaceutical-symbols}{%
+\subsection{Pharmaceutical Symbols}\label{pharmaceutical-symbols}}
-\subsubsection{Italian Pharmacode}\label{italian-pharmacode}
+\hypertarget{italian-pharmacode}{%
+\subsubsection{Italian Pharmacode}\label{italian-pharmacode}}
\textbf{Italian Pharmacode} is a discrete, fixed length, self-checking
barcode symbology used for pharmaceutical products in Italy.
Also known as: Code 32, IMH, Radix 32.
-\paragraph{Data and Options}\label{data-and-options-46}
+\hypertarget{data-and-options-54}{%
+\paragraph{Data and Options}\label{data-and-options-54}}
\begin{itemize}
\tightlist
@@ -3141,10 +4038,11 @@ Also known as: Code 32, IMH, Radix 32.
omitted.
\item
The mandatory check digit is calculated automatically if it is not
- provided.
+ provided, otherwise the provided check digit is verified.
\end{itemize}
-\paragraph{Examples}\label{examples-32}
+\hypertarget{examples-36}{%
+\paragraph{Examples}\label{examples-36}}
Identical symbols, input provided with and without a check digit:
@@ -3162,12 +4060,13 @@ Encoder: code32
\includegraphics{images/code32-1.eps}
-\hypertarget{pharmacode}{\subsubsection{Pharmacode}\label{pharmacode}}
+\hypertarget{pharmacode}{%
+\subsubsection{Pharmacode}\label{pharmacode}}
\textbf{Pharmacode} is a binary barcode symbology that is used by the
Pharmaceutical industry.
-Also known as: Pharmaceutical Binary Code.
+Also known as: Pharmaceutical Binary Code. Laetus Code.
Variants:
@@ -3178,7 +4077,8 @@ Variants:
variant of the Pharmacode barcode.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-47}
+\hypertarget{data-and-options-55}{%
+\paragraph{Data and Options}\label{data-and-options-55}}
\begin{itemize}
\tightlist
@@ -3191,7 +4091,8 @@ Variants:
wide bars and inter-bar spaces respectively.
\end{itemize}
-\paragraph{Example}\label{example-12}
+\hypertarget{example-16}{%
+\paragraph{Example}\label{example-16}}
\begin{verbatim}
Data: 117480
@@ -3201,13 +4102,14 @@ Encoder: pharmacode
\includegraphics{images/pharmacode-1.eps}
-\hypertarget{two-track-pharmacode}{\subsubsection{Two-Track
-Pharmacode}\label{two-track-pharmacode}}
+\hypertarget{two-track-pharmacode}{%
+\subsubsection{Two-Track Pharmacode}\label{two-track-pharmacode}}
\textbf{Two-Track Pharmacode} is a binary barcode symbology used by the
Pharmaceutical industry.
-Also known as: Two-track Pharmaceutical Binary Code.
+Also known as: Two-track Pharmaceutical Binary Code, Two-track Laetus
+Code.
Variants:
@@ -3218,7 +4120,8 @@ Variants:
Two-track Pharmacode barcode.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-48}
+\hypertarget{data-and-options-56}{%
+\paragraph{Data and Options}\label{data-and-options-56}}
\begin{itemize}
\tightlist
@@ -3227,7 +4130,8 @@ Variants:
\texttt{64570080} inclusive.
\end{itemize}
-\paragraph{Example}\label{example-13}
+\hypertarget{example-17}{%
+\paragraph{Example}\label{example-17}}
\begin{verbatim}
Data: 117480
@@ -3237,7 +4141,8 @@ Encoder: pharmacode2
\includegraphics{images/pharmacode2-1.eps}
-\subsubsection{PZN}\label{pzn}
+\hypertarget{pzn}{%
+\subsubsection{PZN}\label{pzn}}
\textbf{PZN} is a discrete, fixed length, self-checking barcode
symbology used for pharmaceutical products in Germany.
@@ -3249,12 +4154,13 @@ Variants:
\begin{itemize}
\tightlist
\item
- PZN-7.
+ PZN7 is the seven-digit format.
\item
- PZN-8.
+ PZN8 is the eight-digit format.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-49}
+\hypertarget{data-and-options-57}{%
+\paragraph{Data and Options}\label{data-and-options-57}}
\begin{itemize}
\tightlist
@@ -3265,13 +4171,15 @@ Variants:
The \textbf{pzn8} option specifies that a PZN8 symbol is required, in
which case the data field must contain seven digits or eight digits.
\item
- The mandatory check digit is calculated automatically if not provided.
+ The mandatory check digit is calculated automatically if not provided,
+ otherwise the provided check digit is verified.
\item
Note: by definition, not all six-digit or seven-digit number sequences
are valid inputs.
\end{itemize}
-\paragraph{Examples}\label{examples-33}
+\hypertarget{examples-37}{%
+\paragraph{Examples}\label{examples-37}}
Identical PZN7 symbols, input provided with and without a check digit:
@@ -3305,8 +4213,8 @@ Encoder: pzn
\includegraphics{images/pzn-2.eps}
-\hypertarget{hibc-symbols}{\subsection{HIBC
-Symbols}\label{hibc-symbols}}
+\hypertarget{hibc-symbols}{%
+\subsection{HIBC Symbols}\label{hibc-symbols}}
\textbf{HIBC barcodes} use a number of general symbologies as carrier
symbols for data structured according to the LIC and PAS structured data
@@ -3343,7 +4251,8 @@ Standards: ANSI/HIBC Provider Applications Standard, ANSI/HIBC Supplier
Labelling Standard, ANSI/HIBC Positive Identification for Patient
Safety, ANSI/HIBC Syntax Standard.
-\paragraph{Data and Options}\label{data-and-options-50}
+\hypertarget{data-and-options-58}{%
+\paragraph{Data and Options}\label{data-and-options-58}}
\begin{itemize}
\tightlist
@@ -3357,8 +4266,8 @@ Safety, ANSI/HIBC Syntax Standard.
input.
\end{itemize}
-\hypertarget{hibc-code-39}{\subsubsection{HIBC Code
-39}\label{hibc-code-39}}
+\hypertarget{hibc-code-39}{%
+\subsubsection{HIBC Code 39}\label{hibc-code-39}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3368,8 +4277,8 @@ Encoder: hibccode39
\includegraphics{images/hibccode39-1.eps}
-\hypertarget{hibc-code-128}{\subsubsection{HIBC Code
-128}\label{hibc-code-128}}
+\hypertarget{hibc-code-128}{%
+\subsubsection{HIBC Code 128}\label{hibc-code-128}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3379,8 +4288,8 @@ Encoder: hibccode128
\includegraphics{images/hibccode128-1.eps}
-\hypertarget{hibc-pdf417}{\subsubsection{HIBC
-PDF417}\label{hibc-pdf417}}
+\hypertarget{hibc-pdf417}{%
+\subsubsection{HIBC PDF417}\label{hibc-pdf417}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3390,8 +4299,8 @@ Encoder: hibcpdf417
\includegraphics{images/hibcpdf417-1.eps}
-\hypertarget{hibc-micropdf417}{\subsubsection{HIBC
-MicroPDF417}\label{hibc-micropdf417}}
+\hypertarget{hibc-micropdf417}{%
+\subsubsection{HIBC MicroPDF417}\label{hibc-micropdf417}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3401,8 +4310,8 @@ Encoder: hibcmicropdf417
\includegraphics{images/hibcmicropdf417-1.eps}
-\hypertarget{hibc-qr-code}{\subsubsection{HIBC QR
-Code}\label{hibc-qr-code}}
+\hypertarget{hibc-qr-code}{%
+\subsubsection{HIBC QR Code}\label{hibc-qr-code}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3412,8 +4321,8 @@ Encoder: hibcqrcode
\includegraphics{images/hibcqrcode-1.eps}
-\hypertarget{hibc-data-matrix}{\subsubsection{HIBC Data
-Matrix}\label{hibc-data-matrix}}
+\hypertarget{hibc-data-matrix}{%
+\subsubsection{HIBC Data Matrix}\label{hibc-data-matrix}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3423,8 +4332,8 @@ Encoder: hibcdatamatrix
\includegraphics{images/hibcdatamatrix-1.eps}
-\hypertarget{hibc-codablock-f}{\subsubsection{HIBC Codablock
-F}\label{hibc-codablock-f}}
+\hypertarget{hibc-codablock-f}{%
+\subsubsection{HIBC Codablock F}\label{hibc-codablock-f}}
\begin{verbatim}
Data: A123BJC5D6E71
@@ -3434,9 +4343,11 @@ Encoder: hibccodablockf
\includegraphics{images/hibccodablockf-1.eps}
-\subsection{Less-used Symbols}\label{less-used-symbols}
+\hypertarget{less-used-symbols}{%
+\subsection{Less-used Symbols}\label{less-used-symbols}}
-\subsubsection{BC412}\label{bc412}
+\hypertarget{bc412}{%
+\subsubsection{BC412}\label{bc412}}
The \textbf{BC412} barcode symbology is single width, variable length
barcode that is used for silicon wafer identification by the
@@ -3444,7 +4355,8 @@ semiconductor manufacturing industry.
Also known as: BC412 SEMI, BC412 IBM.
-\paragraph{Data and Options}\label{data-and-options-51}
+\hypertarget{data-and-options-59}{%
+\paragraph{Data and Options}\label{data-and-options-59}}
\begin{itemize}
\tightlist
@@ -3474,7 +4386,8 @@ Also known as: BC412 SEMI, BC412 IBM.
bars.
\end{itemize}
-\paragraph{Examples}\label{examples-34}
+\hypertarget{examples-38}{%
+\paragraph{Examples}\label{examples-38}}
\begin{verbatim}
Data: BC412
@@ -3500,7 +4413,8 @@ Encoder: bc412
\includegraphics{images/bc412-3.eps}
-\subsubsection{Channel Code}\label{channel-code}
+\hypertarget{channel-code}{%
+\subsubsection{Channel Code}\label{channel-code}}
\textbf{Channel Code} is a linear, continuous, self-checking,
bidirectional barcode symbology that encodes between two and seven
@@ -3508,7 +4422,8 @@ digits in a short space.
Standards: ANSI/AIM BC12 - USS Channel Code.
-\paragraph{Data and Options}\label{data-and-options-52}
+\hypertarget{data-and-options-60}{%
+\paragraph{Data and Options}\label{data-and-options-60}}
\begin{itemize}
\tightlist
@@ -3541,7 +4456,8 @@ Standards: ANSI/AIM BC12 - USS Channel Code.
The \textbf{includecheck} option appends an optional check bar suffix.
\end{itemize}
-\paragraph{Examples}\label{examples-35}
+\hypertarget{examples-39}{%
+\paragraph{Examples}\label{examples-39}}
A channel 3 symbol holding the value five:
@@ -3583,7 +4499,8 @@ Encoder: channelcode
\includegraphics{images/channelcode-4.eps}
-\subsubsection{Codabar}\label{codabar}
+\hypertarget{codabar}{%
+\subsubsection{Codabar}\label{codabar}}
\textbf{Codabar} is a linear, discrete, self-checking, bidirectional
barcode symbology that can encode digits, six symbols and four delimiter
@@ -3595,7 +4512,8 @@ USS-Codabar, ABC Codabar, Monarch, Code 2 of 7.
Standards: ANSI/AIM BC3 - USS Codabar, BS EN 798.
-\paragraph{Data and Options}\label{data-and-options-53}
+\hypertarget{data-and-options-61}{%
+\paragraph{Data and Options}\label{data-and-options-61}}
\begin{itemize}
\tightlist
@@ -3630,7 +4548,8 @@ Standards: ANSI/AIM BC3 - USS Codabar, BS EN 798.
characters appear in the human readable text.
\end{itemize}
-\paragraph{Example}\label{example-14}
+\hypertarget{example-18}{%
+\paragraph{Example}\label{example-18}}
\begin{verbatim}
Data: A0123456789B
@@ -3640,8 +4559,8 @@ Encoder: rationalizedCodabar
\includegraphics{images/codabar-1.eps}
-\hypertarget{codablock-f}{\subsubsection{Codablock
-F}\label{codablock-f}}
+\hypertarget{codablock-f}{%
+\subsubsection{Codablock F}\label{codablock-f}}
The \textbf{Codablock F} barcode symbology is 2D stacked-linear barcode
that consists of a number of stacked \protect\hyperlink{code-128}{Code
@@ -3658,12 +4577,15 @@ Variants:
Standards: USS Codablock F.
-\paragraph{Data and Options}\label{data-and-options-54}
+\hypertarget{data-and-options-62}{%
+\paragraph{Data and Options}\label{data-and-options-62}}
\begin{itemize}
\tightlist
\item
- The data field can consist of any extended-ASCII data.
+ The data field can consist of any extended-ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
\item
\emph{FNC4} function characters will be inserted automatically to
allow the encoding of extended ASCII characters.
@@ -3673,7 +4595,19 @@ Standards: USS Codablock F.
ASCII value, useful for specifying unprintable characters.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1} or \texttt{\^{}FNC3}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
\item
The \textbf{columns} option specifies the number of columns in the
symbol, default 8.
@@ -3695,7 +4629,8 @@ Standards: USS Codablock F.
bars enclosing the rows in points. The default is 1.
\end{itemize}
-\paragraph{Examples}\label{examples-36}
+\hypertarget{examples-40}{%
+\paragraph{Examples}\label{examples-40}}
\begin{verbatim}
Data: Codablock F
@@ -3721,7 +4656,8 @@ Encoder: codablockf
\includegraphics{images/codablockf-3.eps}
-\subsubsection{Code 11}\label{code-11}
+\hypertarget{code-11}{%
+\subsubsection{Code 11}\label{code-11}}
\textbf{Code 11} is a linear, discrete, non-self-checking,
bidirectional, numeric barcode symbology that is primarily used for
@@ -3729,7 +4665,8 @@ labelling telecommunication equipment.
Also known as: USD-8.
-\paragraph{Data and Options}\label{data-and-options-55}
+\hypertarget{data-and-options-63}{%
+\paragraph{Data and Options}\label{data-and-options-63}}
\begin{itemize}
\tightlist
@@ -3743,7 +4680,8 @@ Also known as: USD-8.
For 10 or more data digits two check digits are used.
\end{itemize}
-\paragraph{Example}\label{example-15}
+\hypertarget{example-19}{%
+\paragraph{Example}\label{example-19}}
\begin{verbatim}
Data: 0123456789
@@ -3753,7 +4691,8 @@ Encoder: code11
\includegraphics{images/code11-1.eps}
-\subsubsection{Code 16K}\label{code-16k}
+\hypertarget{code-16k}{%
+\subsubsection{Code 16K}\label{code-16k}}
The \textbf{Code 16K} barcode symbology is 2D stacked-linear barcode
that can encode full 256 character extended-ASCII with the use of the
@@ -3763,12 +4702,15 @@ Also known as: USS-16K
Standards: ANSI/AIM BC7 - USS Code 16K, BS EN 12323.
-\paragraph{Data and Options}\label{data-and-options-56}
+\hypertarget{data-and-options-64}{%
+\paragraph{Data and Options}\label{data-and-options-64}}
\begin{itemize}
\tightlist
\item
- The input can consist of any 256-bit extended ASCII data.
+ The data field can consist of any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
\item
\emph{FNC4} function characters will be inserted automatically to
allow the encoding of extended ASCII characters.
@@ -3778,8 +4720,17 @@ Standards: ANSI/AIM BC7 - USS Code 16K, BS EN 12323.
ASCII value, useful for specifying unprintable characters.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1} through
- \texttt{\^{}FNC3}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
\item
The \textbf{mode} option specifies the mode for the symbol. It is
usual to leave this unspecified in which case the most appropriate
@@ -3826,7 +4777,8 @@ Standards: ANSI/AIM BC7 - USS Code 16K, BS EN 12323.
bars enclosing the rows in points. The default is 1.
\end{itemize}
-\paragraph{Examples}\label{examples-37}
+\hypertarget{examples-41}{%
+\paragraph{Examples}\label{examples-41}}
\begin{verbatim}
Data: Abcd-1234567890-wxyZ
@@ -3852,7 +4804,8 @@ Encoder: code16k
\includegraphics{images/code16k-3.eps}
-\hypertarget{code-25}{\subsubsection{Code 25}\label{code-25}}
+\hypertarget{code-25}{%
+\subsubsection{Code 25}\label{code-25}}
\textbf{Code 2 of 5} is a simple low density numeric barcode symbology.
@@ -3873,7 +4826,8 @@ Variants:
\protect\hyperlink{coop-2-of-5}{COOP 2 of 5}.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-57}
+\hypertarget{data-and-options-65}{%
+\paragraph{Data and Options}\label{data-and-options-65}}
\begin{itemize}
\tightlist
@@ -3882,7 +4836,8 @@ Variants:
\item
The \textbf{includecheck} option calculates the check digit.
\item
- The \textbf{version} option determines which variant to use:
+ \emph{Deprecated}: The \textbf{version} option determines which
+ variant to use:
\begin{itemize}
\tightlist
@@ -3903,7 +4858,8 @@ Variants:
\end{itemize}
\end{itemize}
-\paragraph{Examples}\label{examples-38}
+\hypertarget{examples-42}{%
+\paragraph{Examples}\label{examples-42}}
\begin{verbatim}
Data: 01234567
@@ -3913,8 +4869,145 @@ Encoder: code2of5
\includegraphics{images/code25-1.eps}
-\hypertarget{iata-2-of-5}{\subsubsection{IATA 2 of
-5}\label{iata-2-of-5}}
+\hypertarget{dotcode}{%
+\subsubsection{DotCode}\label{dotcode}}
+
+The \textbf{DotCode} symbology is 2D matrix-style barcode that can
+encode full 256 character extended-ASCII.
+
+Also known as: Ribbon Code
+
+Variants:
+
+\begin{itemize}
+\tightlist
+\item
+ \protect\hyperlink{gs1-dotcode}{GS1 DotCode} is a variant of DotCode
+ that should be used when encoding data that is in
+ \protect\hyperlink{gs1-application-identifier-standard-format}{GS1
+ Application Identifier standard format}.
+\end{itemize}
+
+Standards: AIM - ISS DotCode.
+
+\hypertarget{data-and-options-66}{%
+\paragraph{Data and Options}\label{data-and-options-66}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
+\item
+ When the \textbf{parse} option is specified, any instances of
+ \texttt{\^{}NNN} in the data field are replaced with their equivalent
+ ASCII value. This is useful for specifying unprintable characters.
+\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1. \emph{Recommendation: Use
+ \protect\hyperlink{gs1-dotcode}{GS1 DotCode} for encoding GS1 AI
+ syntax data.}
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
+\item
+ The \textbf{ratio} is used to specify the aspect ratio of the symbol.
+ The default is 1.5.
+\item
+ The \textbf{columns} and \textbf{rows} options are used to specify the
+ size of the symbol. When these are not specified a symbol is generated
+ that maintains the selected aspect ratio.
+\item
+ \emph{Deprecated: Use only if performance is a concern.} The
+ \textbf{fast} option is used to enable the optional high-speed symbol
+ masking algorithm.
+\end{itemize}
+
+\hypertarget{examples-43}{%
+\paragraph{Examples}\label{examples-43}}
+
+\begin{verbatim}
+Data: This is DotCode
+Options: inkspread=0.16
+Encoder: dotcode
+\end{verbatim}
+
+\includegraphics{images/dotcode-1.eps}
+
+\hypertarget{ultracode}{%
+\subsubsection{Ultracode}\label{ultracode}}
+
+The \textbf{Ultracode} symbology is a colour, 2D matrix-style barcode
+symbology that can encode full 256 character extended-ASCII.
+
+Standards: AIM ISS - Ultracode.
+
+\hypertarget{data-and-options-67}{%
+\paragraph{Data and Options}\label{data-and-options-67}}
+
+\begin{itemize}
+\tightlist
+\item
+ The data field can contain any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
+\item
+ When the \textbf{parse} option is specified, any instances of
+ \texttt{\^{}NNN} in the data field are replaced with their equivalent
+ ASCII value, useful for specifying unprintable characters.
+\item
+ When the \textbf{parsefnc} option is specified, non-data function
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
+\item
+ The \textbf{eclevel} option is used to specify the error correction
+ level:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{eclevel=EC0} - Error detection only
+ \item
+ \texttt{eclevel=EC1} - Low
+ \item
+ \texttt{eclevel=EC2} - Medium (default)
+ \item
+ \texttt{eclevel=EC3}
+ \item
+ \texttt{eclevel=EC4}
+ \item
+ \texttt{eclevel=EC5} - Highest
+ \end{itemize}
+\end{itemize}
+
+\hypertarget{examples-44}{%
+\paragraph{Examples}\label{examples-44}}
+
+\begin{verbatim}
+Data: Nice colours!
+Options: eclevel=EC3
+Encoder: ultracode
+\end{verbatim}
+
+\includegraphics{images/ultracode-1.eps}
+
+\hypertarget{iata-2-of-5}{%
+\subsubsection{IATA 2 of 5}\label{iata-2-of-5}}
\textbf{IATA 2 of 5} is a variant of the
\protect\hyperlink{code-25}{Code 2 of 5} barcode symbology.
@@ -3935,7 +5028,8 @@ Variants:
\protect\hyperlink{coop-2-of-5}{COOP 2 of 5}.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-58}
+\hypertarget{data-and-options-68}{%
+\paragraph{Data and Options}\label{data-and-options-68}}
\begin{itemize}
\tightlist
@@ -3945,7 +5039,8 @@ Variants:
The \textbf{includecheck} option calculates the check digit.
\end{itemize}
-\paragraph{Examples}\label{examples-39}
+\hypertarget{examples-45}{%
+\paragraph{Examples}\label{examples-45}}
\begin{verbatim}
Data: 01234567
@@ -3955,8 +5050,8 @@ Encoder: iata2of5
\includegraphics{images/code25-2.eps}
-\hypertarget{matrix-2-of-5}{\subsubsection{Matrix 2 of
-5}\label{matrix-2-of-5}}
+\hypertarget{matrix-2-of-5}{%
+\subsubsection{Matrix 2 of 5}\label{matrix-2-of-5}}
\textbf{Matrix 2 of 5} is a variant of the
\protect\hyperlink{code-25}{Code 2 of 5} barcode symbology.
@@ -3976,7 +5071,8 @@ Variants:
\protect\hyperlink{coop-2-of-5}{COOP 2 of 5}.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-59}
+\hypertarget{data-and-options-69}{%
+\paragraph{Data and Options}\label{data-and-options-69}}
\begin{itemize}
\tightlist
@@ -3986,8 +5082,8 @@ Variants:
The \textbf{includecheck} option calculates the check digit.
\end{itemize}
-\hypertarget{datalogic-2-of-5}{\subsubsection{Datalogic 2 of
-5}\label{datalogic-2-of-5}}
+\hypertarget{datalogic-2-of-5}{%
+\subsubsection{Datalogic 2 of 5}\label{datalogic-2-of-5}}
\textbf{Datalogic 2 of 5} is a variant of the
\protect\hyperlink{code-25}{Code 2 of 5} barcode symbology.
@@ -4007,7 +5103,8 @@ Variants:
\protect\hyperlink{coop-2-of-5}{COOP 2 of 5}.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-60}
+\hypertarget{data-and-options-70}{%
+\paragraph{Data and Options}\label{data-and-options-70}}
\begin{itemize}
\tightlist
@@ -4017,8 +5114,8 @@ Variants:
The \textbf{includecheck} option calculates the check digit.
\end{itemize}
-\hypertarget{coop-2-of-5}{\subsubsection{COOP 2 of
-5}\label{coop-2-of-5}}
+\hypertarget{coop-2-of-5}{%
+\subsubsection{COOP 2 of 5}\label{coop-2-of-5}}
\textbf{COOP 2 of 5} is a variant of the
\protect\hyperlink{code-25}{Code 2 of 5} barcode symbology.
@@ -4038,7 +5135,8 @@ Variants:
\protect\hyperlink{matrix-2-of-5}{Matrix 2 of 5}.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-61}
+\hypertarget{data-and-options-71}{%
+\paragraph{Data and Options}\label{data-and-options-71}}
\begin{itemize}
\tightlist
@@ -4048,7 +5146,8 @@ Variants:
The \textbf{includecheck} option calculates the check digit.
\end{itemize}
-\subsubsection{Code 49}\label{code-49}
+\hypertarget{code-49}{%
+\subsubsection{Code 49}\label{code-49}}
The \textbf{Code 49} barcode symbology is 2D stacked-linear barcode that
can encode 128 character ASCII.
@@ -4057,7 +5156,8 @@ Also known as: USS-49.
Standards: ANSI/AIM BC6 - USS Code 49.
-\paragraph{Data and Options}\label{data-and-options-62}
+\hypertarget{data-and-options-72}{%
+\paragraph{Data and Options}\label{data-and-options-72}}
\begin{itemize}
\tightlist
@@ -4069,8 +5169,17 @@ Standards: ANSI/AIM BC6 - USS Code 49.
ASCII value, useful for specifying unprintable characters.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1} through
- \texttt{\^{}FNC3}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
\item
The \textbf{mode} option specifies the mode for the symbol. It is
usual to leave this unspecified in which case the most appropriate
@@ -4096,7 +5205,7 @@ Standards: ANSI/AIM BC6 - USS Code 49.
\end{itemize}
\item
The \textbf{pos} option specifies this symbol to be part of multi-part
- structured data, i.e.~selecting \texttt{mode=3}. For example
+ structured data, i.e. selecting \texttt{mode=3}. For example
\texttt{pos=25} specifies this to be the second symbol in a group of
five symbols.
\item
@@ -4113,7 +5222,8 @@ Standards: ANSI/AIM BC6 - USS Code 49.
bars enclosing the rows in points. The default is \emph{1}.
\end{itemize}
-\paragraph{Examples}\label{examples-40}
+\hypertarget{examples-46}{%
+\paragraph{Examples}\label{examples-46}}
\begin{verbatim}
Data: MULTIPLE ROWS IN CODE 49
@@ -4139,7 +5249,8 @@ Encoder: code49
\includegraphics{images/code49-3.eps}
-\subsubsection{Code One}\label{code-one}
+\hypertarget{code-one}{%
+\subsubsection{Code One}\label{code-one}}
\textbf{Code One} was the earliest public domain 2D matrix-style
barcode. It is used by the health care and recycling industry and can
@@ -4149,13 +5260,17 @@ Also known as: Code 1, Code 1S.
Standards: AIM USS - Code One.
-\paragraph{Data and Options}\label{data-and-options-63}
+\hypertarget{data-and-options-73}{%
+\paragraph{Data and Options}\label{data-and-options-73}}
\begin{itemize}
\tightlist
\item
The data field can consist of any ASCII data for \emph{standard} and
- \emph{T-type} symbols.
+ \emph{T-type} symbols. The default interpretation of data by readers
+ is in accordance with ISO/IEC 8859-1. When supported by the receiver
+ characters from other code pages can be encoded using Extended Channel
+ Interpretation (ECI).
\item
Note: \emph{S-type} symbols are special in that they represent a
numeric value so may only contain digits.
@@ -4166,7 +5281,17 @@ Standards: AIM USS - Code One.
\texttt{\^{}029} for \emph{GS}, etc.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1}, \texttt{\^{}FNC3}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \item
+ \texttt{\^{}ECI000000} to \texttt{\^{}ECI999999}: ECI indicators
+ \end{itemize}
\item
The \textbf{version} option is used to specify the size and type of
the symbol:
@@ -4186,7 +5311,8 @@ Standards: AIM USS - Code One.
\end{itemize}
\end{itemize}
-\paragraph{Examples}\label{examples-41}
+\hypertarget{examples-47}{%
+\paragraph{Examples}\label{examples-47}}
\begin{verbatim}
Data: Code One
@@ -4220,8 +5346,8 @@ Encoder: codeone
\includegraphics{images/codeone-4.eps}
-\hypertarget{msi-plessey}{\subsubsection{MSI
-Plessey}\label{msi-plessey}}
+\hypertarget{msi-plessey}{%
+\subsubsection{MSI Plessey}\label{msi-plessey}}
\textbf{MSI Plessey} is a continuous, non-self-checking, arbitrary
length, numeric barcode symbology.
@@ -4237,7 +5363,8 @@ Variants:
which MSI Modified Plessey was based.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-64}
+\hypertarget{data-and-options-74}{%
+\paragraph{Data and Options}\label{data-and-options-74}}
\begin{itemize}
\tightlist
@@ -4276,7 +5403,8 @@ Variants:
correct representation.
\end{itemize}
-\paragraph{Examples}\label{examples-42}
+\hypertarget{examples-48}{%
+\paragraph{Examples}\label{examples-48}}
\begin{verbatim}
Data: 0123456789
@@ -4302,7 +5430,8 @@ Encoder: msi
\includegraphics{images/msi-3.eps}
-\hypertarget{plessey}{\subsubsection{Plessey}\label{plessey}}
+\hypertarget{plessey}{%
+\subsubsection{Plessey}\label{plessey}}
\textbf{Plessey} is a continuous, arbitrary length barcode symbology for
encoding hexadecimal data.
@@ -4318,7 +5447,8 @@ Variants:
the Plessey (UK) barcode developed by the MSI Data Corporation.
\end{itemize}
-\paragraph{Data and Options}\label{data-and-options-65}
+\hypertarget{data-and-options-75}{%
+\paragraph{Data and Options}\label{data-and-options-75}}
\begin{itemize}
\tightlist
@@ -4343,7 +5473,8 @@ Variants:
symbol.
\end{itemize}
-\paragraph{Examples}\label{examples-43}
+\hypertarget{examples-49}{%
+\paragraph{Examples}\label{examples-49}}
Equivalent symbols, the latter displaying the two mandatory check
characters:
@@ -4374,7 +5505,8 @@ Encoder: plessey
\includegraphics{images/plessey-3.eps}
-\subsubsection{PosiCode}\label{posicode}
+\hypertarget{posicode}{%
+\subsubsection{PosiCode}\label{posicode}}
\textbf{PosiCode} is a continuous, variable length, non-self-checking,
bidirectional barcode symbology that is designed for use within printing
@@ -4382,7 +5514,8 @@ processes where it is difficult to precisely control the width of a bar.
Standards: ITS PosiCode.
-\paragraph{Data and Options}\label{data-and-options-66}
+\hypertarget{data-and-options-76}{%
+\paragraph{Data and Options}\label{data-and-options-76}}
\begin{itemize}
\tightlist
@@ -4392,10 +5525,16 @@ Standards: ITS PosiCode.
\begin{itemize}
\tightlist
\item
- For \emph{standard} symbols: Any 256-bit extended ASCII data.
- \item
- \emph{FNC4} function characters will be inserted automatically to
- allow the encoding of extended ASCII characters.
+ For \emph{standard} symbols: Any extended ASCII data. The default
+ interpretation of data by readers is in accordance with ISO/IEC
+ 8859-1.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \emph{FNC4} function characters will be inserted automatically to
+ allow the encoding of extended ASCII characters.
+ \end{itemize}
\item
For \emph{limited} symbols: letters \texttt{A-Z}, digits
\texttt{0-9}, symbols \texttt{-} and \texttt{.}
@@ -4422,14 +5561,24 @@ Standards: ITS PosiCode.
\texttt{\^{}029} for \emph{GS}, etc.
\item
When the \textbf{parsefnc} option is specified, non-data function
- characters can be specified by \texttt{\^{}FNC1} through
- \texttt{\^{}FNC3}.
+ characters can be specified by escape sequences:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{\^{}FNC1}: FNC1
+ \item
+ \texttt{\^{}FNC2}: FNC2
+ \item
+ \texttt{\^{}FNC3}: FNC3
+ \end{itemize}
\item
The \textbf{inkspread} option can be used to adjust the width of the
bars.
\end{itemize}
-\paragraph{Example PosiCode}\label{example-posicode}
+\hypertarget{example-posicode}{%
+\paragraph{Example PosiCode}\label{example-posicode}}
Equivalent ways to generate a PosiCode A symbol:
@@ -4477,7 +5626,8 @@ Encoder: posicode
\includegraphics{images/posicode-4.eps}
-\paragraph{Example Limited PosiCode}\label{example-limited-posicode}
+\hypertarget{example-limited-posicode}{%
+\paragraph{Example Limited PosiCode}\label{example-limited-posicode}}
Limited PosiCode A with narrowed bars:
@@ -4499,7 +5649,8 @@ Encoder: posicode
\includegraphics{images/posicode-6.eps}
-\hypertarget{telepen}{\subsubsection{Telepen}\label{telepen}}
+\hypertarget{telepen}{%
+\subsubsection{Telepen}\label{telepen}}
\textbf{Telepen} is an arbitrary length barcode symbology for encoding
all 128 ASCII characters without the need for shift characters.
@@ -4516,7 +5667,8 @@ Variants:
Standards: USS Telepen.
-\paragraph{Data and Options}\label{data-and-options-67}
+\hypertarget{data-and-options-77}{%
+\paragraph{Data and Options}\label{data-and-options-77}}
\begin{itemize}
\tightlist
@@ -4536,7 +5688,8 @@ Standards: USS Telepen.
encoded using the \emph{parse} option.}
\end{itemize}
-\paragraph{Examples}\label{examples-44}
+\hypertarget{examples-50}{%
+\paragraph{Examples}\label{examples-50}}
\begin{verbatim}
Data: Telepen
@@ -4554,8 +5707,8 @@ Encoder: telepen
\includegraphics{images/telepen-2.eps}
-\hypertarget{telepen-numeric}{\subsubsection{Telepen
-Numeric}\label{telepen-numeric}}
+\hypertarget{telepen-numeric}{%
+\subsubsection{Telepen Numeric}\label{telepen-numeric}}
\textbf{Telepen Numeric} is a variant of the Telepen symbology for
efficient encoding of numeric data.
@@ -4570,7 +5723,8 @@ Variants:
Standards: USS Telepen.
-\paragraph{Data and Options}\label{data-and-options-68}
+\hypertarget{data-and-options-78}{%
+\paragraph{Data and Options}\label{data-and-options-78}}
\begin{itemize}
\tightlist
@@ -4586,7 +5740,8 @@ Standards: USS Telepen.
The mandatory check digit is automatically included.
\end{itemize}
-\paragraph{Examples}\label{examples-45}
+\hypertarget{examples-51}{%
+\paragraph{Examples}\label{examples-51}}
\begin{verbatim}
Data: 123456
@@ -4612,8 +5767,8 @@ Encoder: telepennumeric
\includegraphics{images/telepen-5.eps}
-\hypertarget{gs1-composite-symbols}{\subsection{GS1 Composite
-Symbols}\label{gs1-composite-symbols}}
+\hypertarget{gs1-composite-symbols}{%
+\subsection{GS1 Composite Symbols}\label{gs1-composite-symbols}}
\textbf{GS1 Composite} barcode symbologies consist of a primary
component beneath a 2D component (variations of
@@ -4677,7 +5832,8 @@ Variants:
Standards: ISO/IEC 24723, ITS EAN.UCC Composite Symbology, AIM ISS -
EAN.UCC Composite Symbology, GS1 General Specifications.
-\paragraph{Data and Options}\label{data-and-options-69}
+\hypertarget{data-and-options-79}{%
+\paragraph{Data and Options}\label{data-and-options-79}}
\begin{itemize}
\tightlist
@@ -4693,6 +5849,13 @@ EAN.UCC Composite Symbology, GS1 General Specifications.
\protect\hyperlink{gs1-application-identifier-standard-format}{GS1
Application Identifier standard format}.
\item
+ Note that it is not necessary to specify \emph{FNC1} characters since
+ the encoder will insert these automatically where necessary.
+\item
+ \emph{Deprecated.} The \textbf{dontlint} option disables GS1
+ Application Identifier syntax validation allowing images to be
+ generated for input that does not comply with GS1 standards.
+\item
For maximum efficiency, if the data for the 2D component contains a
number of application identifiers matching any of the specifications
below then they should be provided in this given order:
@@ -4707,8 +5870,9 @@ EAN.UCC Composite Symbology, GS1 General Specifications.
\texttt{(90)\{0-3\ digits\ not\ starting\ 0\}\{upper\ alpha\}...}
\end{itemize}
\item
- The \textbf{ccversion} option is used to select a specific 2D
- component:
+ \emph{Deprecated: Default is best unless your application dictates
+ otherwise.} The \textbf{ccversion} option is used to select a specific
+ 2D component:
\begin{itemize}
\tightlist
@@ -4719,17 +5883,17 @@ EAN.UCC Composite Symbology, GS1 General Specifications.
\item
\texttt{ccversion=c} - \protect\hyperlink{cc-c}{CC-C}
(\protect\hyperlink{gs1-128-composite}{GS1-128 Composite} only)
+ \item
+ If \textbf{ccversion} is not specified a CC-A component will be
+ selected if the data will fit, otherwise a CC-B component will be
+ used. In the case of \protect\hyperlink{gs1-128-composite}{GS1-128
+ Composite} a CC-C component will be used if the data does not fit
+ within either a CC-A or CC-B component.
\end{itemize}
-\item
- If \textbf{ccversion} is not specified a CC-A component will be
- selected if the data will fit, otherwise a CC-B component will be
- used. In the case of \protect\hyperlink{gs1-128-composite}{GS1-128
- Composite} a CC-C component will be used if the data does not fit
- within either a CC-A or CC-B component.
\end{itemize}
-\hypertarget{ean-13-composite}{\subsubsection{EAN-13
-Composite}\label{ean-13-composite}}
+\hypertarget{ean-13-composite}{%
+\subsubsection{EAN-13 Composite}\label{ean-13-composite}}
\begin{verbatim}
Data: 331234567890|(99)1234-abcd
@@ -4739,8 +5903,8 @@ Encoder: ean13composite
\includegraphics{images/ean13composite-1.eps}
-\hypertarget{ean-8-composite}{\subsubsection{EAN-8
-Composite}\label{ean-8-composite}}
+\hypertarget{ean-8-composite}{%
+\subsubsection{EAN-8 Composite}\label{ean-8-composite}}
\begin{verbatim}
Data: 12345670|(21)A12345678
@@ -4750,8 +5914,8 @@ Encoder: ean8composite
\includegraphics{images/ean8composite-1.eps}
-\hypertarget{upc-a-composite}{\subsubsection{UPC-A
-Composite}\label{upc-a-composite}}
+\hypertarget{upc-a-composite}{%
+\subsubsection{UPC-A Composite}\label{upc-a-composite}}
\begin{verbatim}
Data: 01600033610|(99)1234-abcd
@@ -4761,8 +5925,8 @@ Encoder: upcacomposite
\includegraphics{images/upcacomposite-1.eps}
-\hypertarget{upc-e-composite}{\subsubsection{UPC-E
-Composite}\label{upc-e-composite}}
+\hypertarget{upc-e-composite}{%
+\subsubsection{UPC-E Composite}\label{upc-e-composite}}
\begin{verbatim}
Data: 0121230|(15)021231
@@ -4772,8 +5936,8 @@ Encoder: upcecomposite
\includegraphics{images/upcecomposite-1.eps}
-\hypertarget{gs1-databar-omnidirectional-composite}{\subsubsection{GS1
-DataBar Omnidirectional
+\hypertarget{gs1-databar-omnidirectional-composite}{%
+\subsubsection{GS1 DataBar Omnidirectional
Composite}\label{gs1-databar-omnidirectional-composite}}
\begin{verbatim}
@@ -4784,8 +5948,8 @@ Encoder: databaromnicomposite
\includegraphics{images/databaromnicomposite-1.eps}
-\hypertarget{gs1-databar-stacked-omnidirectional-composite}{\subsubsection{GS1
-DataBar Stacked Omnidirectional
+\hypertarget{gs1-databar-stacked-omnidirectional-composite}{%
+\subsubsection{GS1 DataBar Stacked Omnidirectional
Composite}\label{gs1-databar-stacked-omnidirectional-composite}}
\begin{verbatim}
@@ -4796,8 +5960,9 @@ Encoder: databarstackedomnicomposite
\includegraphics{images/databarstackedomnicomposite-1.eps}
-\hypertarget{gs1-databar-expanded-composite}{\subsubsection{GS1 DataBar
-Expanded Composite}\label{gs1-databar-expanded-composite}}
+\hypertarget{gs1-databar-expanded-composite}{%
+\subsubsection{GS1 DataBar Expanded
+Composite}\label{gs1-databar-expanded-composite}}
\begin{verbatim}
Data: (01)93712345678904(3103)001234|(91)1A2B3C4D5E
@@ -4807,8 +5972,8 @@ Encoder: databarexpandedcomposite
\includegraphics{images/databarexpandedcomposite-1.eps}
-\hypertarget{gs1-databar-expanded-stacked-composite}{\subsubsection{GS1
-DataBar Expanded Stacked
+\hypertarget{gs1-databar-expanded-stacked-composite}{%
+\subsubsection{GS1 DataBar Expanded Stacked
Composite}\label{gs1-databar-expanded-stacked-composite}}
\begin{verbatim}
@@ -4819,8 +5984,9 @@ Encoder: databarexpandedstackedcomposite
\includegraphics{images/databarexpandedstackedcomposite-1.eps}
-\hypertarget{gs1-databar-truncated-composite}{\subsubsection{GS1 DataBar
-Truncated Composite}\label{gs1-databar-truncated-composite}}
+\hypertarget{gs1-databar-truncated-composite}{%
+\subsubsection{GS1 DataBar Truncated
+Composite}\label{gs1-databar-truncated-composite}}
\begin{verbatim}
Data: (01)03612345678904|(11)990102
@@ -4830,8 +5996,9 @@ Encoder: databartruncatedcomposite
\includegraphics{images/databartruncatedcomposite-1.eps}
-\hypertarget{gs1-databar-stacked-composite}{\subsubsection{GS1 DataBar
-Stacked Composite}\label{gs1-databar-stacked-composite}}
+\hypertarget{gs1-databar-stacked-composite}{%
+\subsubsection{GS1 DataBar Stacked
+Composite}\label{gs1-databar-stacked-composite}}
\begin{verbatim}
Data: (01)03412345678900|(17)010200
@@ -4841,8 +6008,9 @@ Encoder: databarstackedcomposite
\includegraphics{images/databarstackedcomposite-1.eps}
-\hypertarget{gs1-databar-limited-composite}{\subsubsection{GS1 DataBar
-Limited Composite}\label{gs1-databar-limited-composite}}
+\hypertarget{gs1-databar-limited-composite}{%
+\subsubsection{GS1 DataBar Limited
+Composite}\label{gs1-databar-limited-composite}}
\begin{verbatim}
Data: (01)03512345678907|(21)abcdefghijklmnopqrstuv
@@ -4852,8 +6020,8 @@ Encoder: databarlimitedcomposite
\includegraphics{images/databarlimitedcomposite-1.eps}
-\hypertarget{gs1-128-composite}{\subsubsection{GS1-128
-Composite}\label{gs1-128-composite}}
+\hypertarget{gs1-128-composite}{%
+\subsubsection{GS1-128 Composite}\label{gs1-128-composite}}
GS1-128 Composite with a CC-A 2D component:
@@ -4875,7 +6043,8 @@ Encoder: gs1-128composite
\includegraphics{images/ean128composite-2.eps}
-\hypertarget{cc-a}{\subsubsection{CC-A}\label{cc-a}}
+\hypertarget{cc-a}{%
+\subsubsection{CC-A}\label{cc-a}}
Isolated CC-A 2D component:
@@ -4887,7 +6056,8 @@ Encoder: gs1-cc
\includegraphics{images/gs1composite-1.eps}
-\hypertarget{cc-b}{\subsubsection{CC-B}\label{cc-b}}
+\hypertarget{cc-b}{%
+\subsubsection{CC-B}\label{cc-b}}
Isolated CC-B 2D component:
@@ -4899,7 +6069,8 @@ Encoder: gs1-cc
\includegraphics{images/gs1composite-2.eps}
-\hypertarget{cc-c}{\subsubsection{CC-C}\label{cc-c}}
+\hypertarget{cc-c}{%
+\subsubsection{CC-C}\label{cc-c}}
Isolated CC-C 2D component:
@@ -4911,15 +6082,18 @@ Encoder: gs1-cc
\includegraphics{images/gs1composite-3.eps}
-\subsection{Raw Symbols}\label{raw-symbols}
+\hypertarget{raw-symbols}{%
+\subsection{Raw Symbols}\label{raw-symbols}}
-\subsubsection{DAFT}\label{daft}
+\hypertarget{daft}{%
+\subsubsection{DAFT}\label{daft}}
\textbf{DAFT} is an encoder for directly specifying the descender,
ascender, full-height, tracker-bar succession for a custom 4 state
barcode symbol.
-\paragraph{Data and Options}\label{data-and-options-70}
+\hypertarget{data-and-options-80}{%
+\paragraph{Data and Options}\label{data-and-options-80}}
\begin{itemize}
\tightlist
@@ -4929,7 +6103,8 @@ barcode symbol.
ascender, full-height and tracker bars of a custom 4 state symbol.
\end{itemize}
-\paragraph{Example}\label{example-16}
+\hypertarget{example-20}{%
+\paragraph{Example}\label{example-20}}
\begin{verbatim}
Data: FATDAFTDAD
@@ -4939,13 +6114,15 @@ Encoder: daft
\includegraphics{images/daft-1.eps}
-\subsubsection{Flattermarken}\label{flattermarken}
+\hypertarget{flattermarken}{%
+\subsubsection{Flattermarken}\label{flattermarken}}
\textbf{Flattermarken} are identification marks used in book production
that facilitate the proper arrangement of bound sections by a book
binder.
-\paragraph{Data and Options}\label{data-and-options-71}
+\hypertarget{data-and-options-81}{%
+\paragraph{Data and Options}\label{data-and-options-81}}
\begin{itemize}
\tightlist
@@ -4969,7 +6146,8 @@ binder.
encoder should be used instead.
\end{itemize}
-\paragraph{Example}\label{example-17}
+\hypertarget{example-21}{%
+\paragraph{Example}\label{example-21}}
\begin{verbatim}
Data: 1304
@@ -4979,12 +6157,14 @@ Encoder: flattermarken
\includegraphics{images/flattermarken-1.eps}
-\hypertarget{raw}{\subsubsection{Raw}\label{raw}}
+\hypertarget{raw}{%
+\subsubsection{Raw}\label{raw}}
The \textbf{raw} encoder is used for directly specifying the space/bar
succession of a custom barcode symbol.
-\paragraph{Data and Options}\label{data-and-options-72}
+\hypertarget{data-and-options-82}{%
+\paragraph{Data and Options}\label{data-and-options-82}}
\begin{itemize}
\tightlist
@@ -4993,7 +6173,8 @@ succession of a custom barcode symbol.
the bars and spaces of a custom symbol.
\end{itemize}
-\paragraph{Example}\label{example-18}
+\hypertarget{example-22}{%
+\paragraph{Example}\label{example-22}}
\begin{verbatim}
Data: 331132131313411122131311333213114131131221323
@@ -5003,9 +6184,11 @@ Encoder: raw
\includegraphics{images/raw-1.eps}
-\subsection{Partial Symbols}\label{partial-symbols}
+\hypertarget{partial-symbols}{%
+\subsection{Partial Symbols}\label{partial-symbols}}
-\hypertarget{ean-2}{\subsubsection{EAN-2}\label{ean-2}}
+\hypertarget{ean-2}{%
+\subsubsection{EAN-2}\label{ean-2}}
\textbf{EAN-2} is the two-digit add-on code that accompanies a EAN or
UPC type barcode symbol such as an \protect\hyperlink{isbn}{ISBN} or
@@ -5013,7 +6196,8 @@ UPC type barcode symbol such as an \protect\hyperlink{isbn}{ISBN} or
Also known as: Two-Digit Add-On, Two-Digit Supplement, UPC-2
-\paragraph{Data and Options}\label{data-and-options-73}
+\hypertarget{data-and-options-83}{%
+\paragraph{Data and Options}\label{data-and-options-83}}
\begin{itemize}
\tightlist
@@ -5023,7 +6207,8 @@ Also known as: Two-Digit Add-On, Two-Digit Supplement, UPC-2
The \textbf{includetext} option should normally be supplied.
\end{itemize}
-\paragraph{Example}\label{example-19}
+\hypertarget{example-23}{%
+\paragraph{Example}\label{example-23}}
\begin{verbatim}
Data: 05
@@ -5033,7 +6218,8 @@ Encoder: ean2
\includegraphics{images/ean2-1.eps}
-\hypertarget{ean-5}{\subsubsection{EAN-5}\label{ean-5}}
+\hypertarget{ean-5}{%
+\subsubsection{EAN-5}\label{ean-5}}
\textbf{EAN-5} is the five-digit add-on code that accompanies an EAN or
UPC type barcode symbol such as an \protect\hyperlink{isbn}{ISBN} or
@@ -5041,7 +6227,8 @@ UPC type barcode symbol such as an \protect\hyperlink{isbn}{ISBN} or
Also known as: Five-Digit Add-On, Five-Digit Supplement, UPC-5
-\paragraph{Data and Options}\label{data-and-options-74}
+\hypertarget{data-and-options-84}{%
+\paragraph{Data and Options}\label{data-and-options-84}}
\begin{itemize}
\tightlist
@@ -5051,7 +6238,8 @@ Also known as: Five-Digit Add-On, Five-Digit Supplement, UPC-5
The \textbf{includetext} option should normally be supplied.
\end{itemize}
-\paragraph{Example}\label{example-20}
+\hypertarget{example-24}{%
+\paragraph{Example}\label{example-24}}
\begin{verbatim}
Data: 90200
@@ -5061,14 +6249,14 @@ Encoder: ean5
\includegraphics{images/ean5-1.eps}
-\hypertarget{gs1-application-identifier-standard-format}{\subsection{GS1
-Application Identifier Standard
+\hypertarget{gs1-application-identifier-standard-format}{%
+\subsection{GS1 Application Identifier Standard
Format}\label{gs1-application-identifier-standard-format}}
Certain barcode symbologies (including
\protect\hyperlink{gs1-128}{GS1-128},
-\protect\hyperlink{gs1-databar-omnidirectional}{GS1 DataBar
-Omnidirectional}, \protect\hyperlink{gs1-datamatrix}{GS1 DataMatrix},
+\protect\hyperlink{gs1-databar-expanded}{GS1 DataBar Expanded},
+\protect\hyperlink{gs1-datamatrix}{GS1 DataMatrix},
\protect\hyperlink{gs1-qr-code}{GS1 QR Code} and
\protect\hyperlink{gs1-composite-symbols}{GS1 Composite Symbols})
represent standardized GS1 data and require that their data field is
@@ -5102,25 +6290,37 @@ Identifier standard format will take care of parsing the input and
inserting any necessary \emph{FNC1} characters to delimit variable
length fields.
+Note: Instances of parentheses, \texttt{(} and \texttt{)}, within
+Application Identifier values in the input must be escaped using the
+\protect\hyperlink{input-processingux5cux23parse}{\texttt{parse} option}
+as \texttt{\^{}040} and \texttt{\^{}041}, respectively.
+
+\hypertarget{gs1-application-identifier-linting}{%
\paragraph{GS1 Application Identifier
-Definitions}\label{gs1-application-identifier-definitions}
+Linting}\label{gs1-application-identifier-linting}}
-The Application Identifier definitions are provided in the
+The input is checked against the structural rules for the GS1
+Application Identifiers, as described in
+\href{https://www.linkedin.com/pulse/gs1-application-identifier-syntax-dictionary-terry-burton/}{this
+article}, unless the \textbf{dontlint} option is given. The Application
+Identifier definitions are provided in the
\href{http://www.gs1.org/barcodes-epcrfid-id-keys/gs1-general-specifications}{GS1
-General Specifications}. A summary is available
-\href{http://en.wikipedia.org/wiki/GS1-128\#Full_list_of_Application_Identifiers}{here}
-however this may be out of date.
+General Specifications}.
-\section{Options Reference}\label{options-reference}
+\hypertarget{options-reference}{%
+\section{Options Reference}\label{options-reference}}
-\subsection{Check Digits}\label{check-digits}
+\hypertarget{check-digits}{%
+\subsection{Check Digits}\label{check-digits}}
-\subsubsection{includecheck}\label{includecheck}
+\hypertarget{includecheck}{%
+\subsubsection{includecheck}\label{includecheck}}
Generate check digit(s) for symbologies where the use of check digits is
optional.
-\paragraph{Example}\label{example-21}
+\hypertarget{example-25}{%
+\paragraph{Example}\label{example-25}}
Calculate the optional check characters of this Code 93 symbol:
@@ -5132,11 +6332,13 @@ Encoder: code93
\includegraphics{images/optincludecheck.eps}
-\subsubsection{includecheckintext}\label{includecheckintext}
+\hypertarget{includecheckintext}{%
+\subsubsection{includecheckintext}\label{includecheckintext}}
Show the calculated check digit in the human readable text.
-\paragraph{Notes}\label{notes}
+\hypertarget{notes}{%
+\paragraph{Notes}\label{notes}}
\begin{itemize}
\tightlist
@@ -5148,7 +6350,8 @@ Show the calculated check digit in the human readable text.
then that part is not displayed.
\end{itemize}
-\paragraph{Example}\label{example-22}
+\hypertarget{example-26}{%
+\paragraph{Example}\label{example-26}}
Display the check digit of this Royal Mail barcode:
@@ -5160,16 +6363,72 @@ Encoder: royalmail
\includegraphics{images/optincludecheckintext.eps}
-\subsection{Input Processing}\label{input-processing}
+\hypertarget{input-processing}{%
+\subsection{Input Processing}\label{input-processing}}
-\subsubsection{parse}\label{parse}
+\hypertarget{parse}{%
+\subsubsection{parse}\label{parse}}
In supporting barcode symbologies, when the \emph{parse} option is
specified, any instances of \texttt{\^{}NNN} in the data field are
replaced with their equivalent ASCII value, useful for specifying
unprintable characters.
-\paragraph{Example}\label{example-23}
+Additionally, control character names can be used to specify equivalent
+ASCII values, as follows:
+
+\begin{longtable}[]{@{}lr@{}}
+\toprule()
+Sequence & ASCII value \\
+\midrule()
+\endhead
+\texttt{\^{}NUL} & 0 \\
+\texttt{\^{}SOH} & 1 \\
+\texttt{\^{}STX} & 2 \\
+\texttt{\^{}ETX} & 3 \\
+\texttt{\^{}EOT} & 4 \\
+\texttt{\^{}ENQ} & 5 \\
+\texttt{\^{}ACK} & 6 \\
+\texttt{\^{}BEL} & 7 \\
+\texttt{\^{}BS} & 8 \\
+\texttt{\^{}TAB} & 9 \\
+\texttt{\^{}LF} & 10 \\
+\texttt{\^{}VT} & 11 \\
+\texttt{\^{}FF} & 12 \\
+\texttt{\^{}CR} & 13 \\
+\texttt{\^{}DLE} & 16 \\
+\texttt{\^{}DC1} & 17 \\
+\texttt{\^{}DC2} & 18 \\
+\texttt{\^{}DC3} & 19 \\
+\texttt{\^{}DC4} & 20 \\
+\texttt{\^{}NAK} & 21 \\
+\texttt{\^{}SYN} & 22 \\
+\texttt{\^{}ETB} & 23 \\
+\texttt{\^{}CAN} & 24 \\
+\texttt{\^{}EM} & 25 \\
+\texttt{\^{}SUB} & 26 \\
+\texttt{\^{}ESC} & 27 \\
+\texttt{\^{}FS} & 28 \\
+\texttt{\^{}GS} & 29 \\
+\texttt{\^{}RS} & 30 \\
+\texttt{\^{}US} & 31 \\
+\bottomrule()
+\end{longtable}
+
+ASCII control characters \texttt{SO} and \texttt{SI} cannot be encoded
+by name (since \texttt{SO} would prefix clash with \texttt{SOH}).
+
+Note: When this option is enabled, literal instances of "\^{}" in the
+data should be escaped as \texttt{\^{}094} to avoid replacement if the
+subsequent data characters represent a valid substitution. For example,
+literal "\^{}123" in the input data can be escaped as
+\texttt{\^{}094123}, literal "\^{}RS" in the data can be escaped as
+\texttt{\^{}094RS}, and literal "\^{}ABC" in the data cam be escaped as
+\texttt{\^{}094ABC} (in case \texttt{\^{}ABC} becomes a valid
+substitution in the future).
+
+\hypertarget{example-27}{%
+\paragraph{Example}\label{example-27}}
Equivalent symbols:
@@ -5187,17 +6446,22 @@ Encoder: datamatrix
\includegraphics{images/optparse.eps}
-\subsubsection{parsefnc}\label{parsefnc}
+\hypertarget{parsefnc}{%
+\subsubsection{parsefnc}\label{parsefnc}}
In supporting barcode symbologies, when the \textbf{parsefnc} option is
specified, non-data function characters can be specified by escaped
-combinations such as \texttt{\^{}FNC1}, \texttt{\^{}FNC4} and
-\texttt{\^{}SFT/}.
+combinations such as \texttt{\^{}FNC1}, \texttt{\^{}FNC4},
+\texttt{\^{}SFT/} and \texttt{\^{}ECI000003}.
-\paragraph{Example}\label{example-24}
+Note: When this option is enabled, literal instances of \texttt{\^{}} in
+the input data can be escaped as \texttt{\^{}\^{}}.
-Code 93 including a special shift combination \texttt{(/)A} representing
-\emph{!}:
+\hypertarget{example-28}{%
+\paragraph{Example}\label{example-28}}
+
+Manually-composed Code 93 Extended demonstrating use of the special
+shift combination \texttt{(/)A} to represent \emph{!}:
\begin{verbatim}
Data: TERRY^SFT/A
@@ -5207,13 +6471,16 @@ Encoder: code93
\includegraphics{images/optparsefnc.eps}
-\subsection{Symbol Dimensions}\label{symbol-dimensions}
+\hypertarget{symbol-dimensions}{%
+\subsection{Symbol Dimensions}\label{symbol-dimensions}}
-\subsubsection{height}\label{height}
+\hypertarget{height}{%
+\subsubsection{height}\label{height}}
Height of longest bar, in inches.
-\paragraph{Example}\label{example-25}
+\hypertarget{example-29}{%
+\paragraph{Example}\label{example-29}}
A 1/2 inch tall EAN-13:
@@ -5225,11 +6492,13 @@ Encoder: ean13
\includegraphics{images/optheight.eps}
-\subsubsection{width}\label{width}
+\hypertarget{width}{%
+\subsubsection{width}\label{width}}
Stretch the symbol to precisely this width, in inches.
-\paragraph{Notes}\label{notes-1}
+\hypertarget{notes-1}{%
+\paragraph{Notes}\label{notes-1}}
\begin{itemize}
\tightlist
@@ -5241,7 +6510,8 @@ Stretch the symbol to precisely this width, in inches.
\protect\hyperlink{resizing-symbols}{resizing symbols}.
\end{itemize}
-\paragraph{Example}\label{example-26}
+\hypertarget{example-30}{%
+\paragraph{Example}\label{example-30}}
A 2 inch wide Code 93 symbol:
@@ -5253,9 +6523,14 @@ Encoder: code93
\includegraphics{images/optwidth.eps}
-\subsection{Bar Properties}\label{bar-properties}
+\hypertarget{element-properties}{%
+\subsection{Element Properties}\label{element-properties}}
+
+These are options that allow you to compensate for print gain or print
+loss resulting from the properties of the printing process or substrate.
-\subsubsection{inkspread}\label{inkspread}
+\hypertarget{inkspread}{%
+\subsubsection{inkspread}\label{inkspread}}
For linear barcodes, the amount by which to reduce the bar widths to
compensate for inkspread, in points.
@@ -5263,7 +6538,8 @@ compensate for inkspread, in points.
For matrix barcodes, the amount by which the reduce the width and height
of dark modules to compensate for inkspread, in points.
-\paragraph{Notes}\label{notes-2}
+\hypertarget{notes-2}{%
+\paragraph{Notes}\label{notes-2}}
\begin{itemize}
\tightlist
@@ -5271,7 +6547,8 @@ of dark modules to compensate for inkspread, in points.
Negative values will increase the bar width.
\end{itemize}
-\paragraph{Example}\label{example-27}
+\hypertarget{example-31}{%
+\paragraph{Example}\label{example-31}}
Code 39 for a printer with very runny ink:
@@ -5283,7 +6560,8 @@ Encoder: code39
\includegraphics{images/optinkspread.eps}
-\subsubsection{inkspreadh}\label{inkspreadh}
+\hypertarget{inkspreadh}{%
+\subsubsection{inkspreadh}\label{inkspreadh}}
For matrix barcodes, the amount by which the reduce the width of dark
modules to compensate for inkspread, in points.
@@ -5291,18 +6569,28 @@ modules to compensate for inkspread, in points.
Note: inkspreadh is most useful for stacked-linear type barcodes such as
PDF417 and Codablock F.
-\subsubsection{inkspreadv}\label{inkspreadv}
+\hypertarget{inkspreadv}{%
+\subsubsection{inkspreadv}\label{inkspreadv}}
For matrix barcodes, the amount by which the reduce the height of dark
modules to compensate for inkspread, in points.
-\subsection{Text Properties}\label{text-properties}
+\hypertarget{dotty}{%
+\subsubsection{dotty}\label{dotty}}
+
+For matrix barcodes, render the modules as dots rather than squares. The
+dot radius can be adjusted using the \textbf{inkspread} option.
-\subsubsection{includetext}\label{includetext}
+\hypertarget{text-properties}{%
+\subsection{Text Properties}\label{text-properties}}
+
+\hypertarget{includetext}{%
+\subsubsection{includetext}\label{includetext}}
Show human readable text for data in symbol.
-\paragraph{Notes}\label{notes-3}
+\hypertarget{notes-3}{%
+\paragraph{Notes}\label{notes-3}}
\begin{itemize}
\tightlist
@@ -5311,7 +6599,8 @@ Show human readable text for data in symbol.
then it is not displayed
\end{itemize}
-\paragraph{Example}\label{example-28}
+\hypertarget{example-32}{%
+\paragraph{Example}\label{example-32}}
Display the text encoded in this Code 39 symbol:
@@ -5323,11 +6612,13 @@ Encoder: code39
\includegraphics{images/optincludetext.eps}
-\subsubsection{textfont}\label{textfont}
+\hypertarget{textfont}{%
+\subsubsection{textfont}\label{textfont}}
-The font name for text.
+The PostScript font name for text.
-\paragraph{Notes}\label{notes-4}
+\hypertarget{notes-4}{%
+\paragraph{Notes}\label{notes-4}}
\begin{itemize}
\tightlist
@@ -5337,9 +6628,19 @@ The font name for text.
\item
This option should be used in combination with the
\textbf{includetext} option.
+\item
+ The PostScript font name for a font file can be determined with the
+ following command from the fontconfig library:
+
+ \begin{itemize}
+ \tightlist
+ \item
+ \texttt{fc-scan\ -\/-format\ "\%\{postscriptname\}\textbackslash{}n"\ /usr/share/fonts/truetype/somefont.ttf}
+ \end{itemize}
\end{itemize}
-\paragraph{Example}\label{example-29}
+\hypertarget{example-33}{%
+\paragraph{Example}\label{example-33}}
Customise the human readable text of this USPS POSTNET symbol
@@ -5351,11 +6652,13 @@ Encoder: postnet
\includegraphics{images/opttextfont.eps}
-\subsubsection{textsize}\label{textsize}
+\hypertarget{textsize}{%
+\subsubsection{textsize}\label{textsize}}
The font size of the text in points.
-\paragraph{Note}\label{note}
+\hypertarget{note}{%
+\paragraph{Note}\label{note}}
\begin{itemize}
\tightlist
@@ -5364,7 +6667,8 @@ The font size of the text in points.
\textbf{includetext} option.
\end{itemize}
-\paragraph{Example}\label{example-30}
+\hypertarget{example-34}{%
+\paragraph{Example}\label{example-34}}
Customise the human readable text of this USPS POSTNET symbol
@@ -5376,11 +6680,13 @@ Encoder: postnet
\includegraphics{images/opttextfont.eps}
-\subsubsection{textgaps}\label{textgaps}
+\hypertarget{textgaps}{%
+\subsubsection{textgaps}\label{textgaps}}
The inter-character spacing of the text.
-\paragraph{Note}\label{note-1}
+\hypertarget{note-1}{%
+\paragraph{Note}\label{note-1}}
\begin{itemize}
\tightlist
@@ -5389,9 +6695,25 @@ The inter-character spacing of the text.
option.
\end{itemize}
-\subsection{Text Positioning}\label{text-positioning}
+\hypertarget{alttext}{%
+\subsubsection{alttext}\label{alttext}}
-\subsubsection{textxalign}\label{textxalign}
+Specify text to display other than what is provided in the data field.
+
+\hypertarget{note-2}{%
+\paragraph{Note}\label{note-2}}
+
+\begin{itemize}
+\tightlist
+\item
+ This option should be used in combination with the includetext option.
+\end{itemize}
+
+\hypertarget{text-positioning}{%
+\subsection{Text Positioning}\label{text-positioning}}
+
+\hypertarget{textxalign}{%
+\subsubsection{textxalign}\label{textxalign}}
The \textbf{textxalign} option is used to specify where to horizontally
position the text.
@@ -5412,20 +6734,8 @@ position the text.
\texttt{textxalign=justify}
\end{itemize}
-\paragraph{Notes}\label{notes-5}
-
-\begin{itemize}
-\tightlist
-\item
- By default (in the absence of \textbf{textxalign} or
- \textbf{textyalign}), each character of text is placed immediately
- below the corresponding modules where this is possible.
-\item
- Where there isn't such a direct relationship then the default is to
- position the text centrally beneath the symbol.
-\end{itemize}
-
-\subsubsection{textyalign}\label{textyalign}
+\hypertarget{textyalign}{%
+\subsubsection{textyalign}\label{textyalign}}
The \textbf{textyalign} option is used to specify where to vertically
position the text.
@@ -5440,7 +6750,20 @@ position the text.
\texttt{textyalign=above}
\end{itemize}
-\paragraph{Notes}\label{notes-6}
+\hypertarget{textxoffset}{%
+\subsubsection{textxoffset}\label{textxoffset}}
+
+The horizontal position of the text in points relative to the default
+position.
+
+\hypertarget{textyoffset}{%
+\subsubsection{textyoffset}\label{textyoffset}}
+
+The vertical position of the text in points relative to the default
+position.
+
+\hypertarget{notes-5}{%
+\paragraph{Notes}\label{notes-5}}
\begin{itemize}
\tightlist
@@ -5449,27 +6772,20 @@ position the text.
\textbf{textyalign}), each character of text is placed immediately
below the corresponding modules where this is possible.
\item
- Where there isn't such a direct relationship then the default is to
- position the text centrally beneath the symbol.
+ Where there isn\textquotesingle t such a direct relationship then the
+ default is to position the text centrally beneath the symbol.
\end{itemize}
-\subsubsection{textxoffset}\label{textxoffset}
-
-The horizontal position of the text in points relative to the default
-position.
-
-\subsubsection{textyoffset}\label{textyoffset}
-
-The vertical position of the text in points relative to the default
-position.
-
-\subsection{Border Properties}\label{border-properties}
+\hypertarget{border-properties}{%
+\subsection{Border Properties}\label{border-properties}}
-\subsubsection{showborder}\label{showborder}
+\hypertarget{showborder}{%
+\subsubsection{showborder}\label{showborder}}
Display a border around the symbol.
-\paragraph{Example}\label{example-31}
+\hypertarget{example-35}{%
+\paragraph{Example}\label{example-35}}
Display a customised border around this Codabar symbol:
@@ -5481,49 +6797,60 @@ Encoder: rationalizedCodabar
\includegraphics{images/optborder.eps}
-\subsubsection{borderwidth}\label{borderwidth}
+\hypertarget{borderwidth}{%
+\subsubsection{borderwidth}\label{borderwidth}}
Width of the border, in points.
-\subsubsection{borderleft}\label{borderleft}
+\hypertarget{borderleft}{%
+\subsubsection{borderleft}\label{borderleft}}
Gap between the left edge of the border and the symbol, in points.
-\subsubsection{borderright}\label{borderright}
+\hypertarget{borderright}{%
+\subsubsection{borderright}\label{borderright}}
Gap between the right edge of the border and the symbol, in points.
-\subsubsection{bordertop}\label{bordertop}
+\hypertarget{bordertop}{%
+\subsubsection{bordertop}\label{bordertop}}
Gap between the top edge of the border and the symbol, in points.
-\subsubsection{borderbottom}\label{borderbottom}
+\hypertarget{borderbottom}{%
+\subsubsection{borderbottom}\label{borderbottom}}
Gap between the bottom edge of the border and the symbol, in points.
-\subsection{Symbol Colors}\label{symbol-colors}
+\hypertarget{symbol-colors}{%
+\subsection{Symbol Colors}\label{symbol-colors}}
-\subsubsection{barcolor}\label{barcolor}
+\hypertarget{barcolor}{%
+\subsubsection{barcolor}\label{barcolor}}
Color of the bars or dark modules, either as a hex \texttt{RRGGBB} value
or a hex \texttt{CCMMYYKK} value.
-\subsubsection{backgroundcolor}\label{backgroundcolor}
+\hypertarget{backgroundcolor}{%
+\subsubsection{backgroundcolor}\label{backgroundcolor}}
Color of the light background or light modules, either as a hex
\texttt{RRGGBB} value or a hex \texttt{CCMMYYKK} value.
-\subsubsection{bordercolor}\label{bordercolor}
+\hypertarget{bordercolor}{%
+\subsubsection{bordercolor}\label{bordercolor}}
Color of the border, either as a hex \texttt{RRGGBB} value or a hex
\texttt{CCMMYYKK} value.
-\subsubsection{textcolor}\label{textcolor}
+\hypertarget{textcolor}{%
+\subsubsection{textcolor}\label{textcolor}}
Color of the respective component, either as a hex \texttt{RRGGBB} value
or a hex \texttt{CCMMYYKK} value.
-\paragraph{Examples}\label{examples-46}
+\hypertarget{examples-52}{%
+\paragraph{Examples}\label{examples-52}}
Colorized Code 11 symbol using the RGB colour space:
@@ -5545,13 +6872,16 @@ Encoder: code11
\includegraphics{images/optcolorcmyk.eps}
-\subsection{EAN-UPC Add Ons}\label{ean-upc-add-ons}
+\hypertarget{ean-upc-add-ons}{%
+\subsection{EAN-UPC Add Ons}\label{ean-upc-add-ons}}
-\subsubsection{addontextfont}\label{addontextfont}
+\hypertarget{addontextfont}{%
+\subsubsection{addontextfont}\label{addontextfont}}
The font name of the add on text.
-\paragraph{Notes}\label{notes-7}
+\hypertarget{notes-6}{%
+\paragraph{Notes}\label{notes-6}}
\begin{itemize}
\tightlist
@@ -5562,11 +6892,13 @@ The font name of the add on text.
\textbf{includetext} option.
\end{itemize}
-\subsubsection{addontextsize}\label{addontextsize}
+\hypertarget{addontextsize}{%
+\subsubsection{addontextsize}\label{addontextsize}}
The size of the add on text, in points
-\paragraph{Notes}\label{notes-8}
+\hypertarget{notes-7}{%
+\paragraph{Notes}\label{notes-7}}
\begin{itemize}
\tightlist
@@ -5575,7 +6907,8 @@ The size of the add on text, in points
\textbf{includetext} option.
\end{itemize}
-\paragraph{Example}\label{example-32}
+\hypertarget{example-36}{%
+\paragraph{Example}\label{example-36}}
Customise the human readable text of this USPS POSTNET symbol
@@ -5587,23 +6920,28 @@ Encoder: postnet
\includegraphics{images/opttextfont.eps}
-\subsubsection{addontextxoffset}\label{addontextxoffset}
+\hypertarget{addontextxoffset}{%
+\subsubsection{addontextxoffset}\label{addontextxoffset}}
Overrides the default horizontal positioning of the add on text.
-\subsubsection{addontextyoffset}\label{addontextyoffset}
+\hypertarget{addontextyoffset}{%
+\subsubsection{addontextyoffset}\label{addontextyoffset}}
Overrides the default vertical positioning of the add on text.
-\subsection{EAN-UPC Guards}\label{ean-upc-guards}
+\hypertarget{ean-upc-guards}{%
+\subsection{EAN-UPC Guards}\label{ean-upc-guards}}
-\subsubsection{guardwhitespace}\label{guardwhitespace}
+\hypertarget{guardwhitespace}{%
+\subsubsection{guardwhitespace}\label{guardwhitespace}}
-Display white space guards.
+Display whitespace guards.
-\paragraph{Example}\label{example-33}
+\hypertarget{example-37}{%
+\paragraph{Example}\label{example-37}}
-ISBN-13 with tiny white space guard:
+ISBN-13 with tiny whitespace guard:
\begin{verbatim}
Data: 978-1-873671-00
@@ -5613,33 +6951,40 @@ Encoder: isbn
\includegraphics{images/optguardsize.eps}
-\subsubsection{guardwidth}\label{guardwidth}
+\hypertarget{guardwidth}{%
+\subsubsection{guardwidth}\label{guardwidth}}
Width of the whitespace guards, in points.
-\subsubsection{guardheight}\label{guardheight}
+\hypertarget{guardheight}{%
+\subsubsection{guardheight}\label{guardheight}}
Height of the whitespace guards, in points.
-\subsubsection{guardleftpos}\label{guardleftpos}
+\hypertarget{guardleftpos}{%
+\subsubsection{guardleftpos}\label{guardleftpos}}
Override the default horizontal position of the left whitespace guard.
-\subsubsection{guardrightpos}\label{guardrightpos}
+\hypertarget{guardrightpos}{%
+\subsubsection{guardrightpos}\label{guardrightpos}}
Override the default horizontal position of the right whitespace guard.
-\subsubsection{guardleftypos}\label{guardleftypos}
+\hypertarget{guardleftypos}{%
+\subsubsection{guardleftypos}\label{guardleftypos}}
Override the default vertical position of the left whitespace guard.
-\subsubsection{guardrightypos}\label{guardrightypos}
+\hypertarget{guardrightypos}{%
+\subsubsection{guardrightypos}\label{guardrightypos}}
Override the default vertical position of the right whitespace guard.
-\paragraph{Example}\label{example-34}
+\hypertarget{example-38}{%
+\paragraph{Example}\label{example-38}}
-EAN-8 with very mangled white space guards:
+EAN-8 with very mangled whitespace guards:
\begin{verbatim}
Data: 01335583